* attr && value are allocated contiguous with cp.
*/
+ free((*cp)->item.filename);
#ifndef NDEBUG
memset(*cp, 0, sizeof(cp));
#endif
/*
* And free the section
*/
+ free((*cs)->item.filename);
#ifndef NDEBUG
memset(*cs, 0, sizeof(cs));
#endif
cpn = cf_pair_alloc(name, value, T_OP_SET, T_BARE_WORD, cs);
if (!cpn) return -1;
- cpn->item.filename = "<internal>";
+ cpn->item.filename = strdup("<internal>");
cpn->item.lineno = 0;
cf_item_add(cs, cf_pairtoitem(cpn));
}
*/
do_set:
cpn = cf_pair_alloc(buf1, value, t2, t3, this);
- cpn->item.filename = filename;
+ cpn->item.filename = strdup(filename);
cpn->item.lineno = *lineno;
cf_item_add(this, cf_pairtoitem(cpn));
continue;
return -1;
}
cf_item_add(this, cf_sectiontoitem(css));
- css->item.filename = filename;
+ css->item.filename = strdup(filename);
css->item.lineno = *lineno;
/*
return -1;
}
- if (!cs->item.filename) cs->item.filename = filename;
+ if (!cs->item.filename) cs->item.filename = strdup(filename);
/*
* Read the section. It's OK to have EOF without a
p = strrchr(cp->value, FR_DIR_SEP);
if (p) *p = '\0';
- cp->item.filename = "internal";
+ cp->item.filename = strdup("<internal>");
cp->item.lineno = 0;
cf_item_add(cs, cf_pairtoitem(cp));