summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dtc-parser.y3
-rw-r--r--dtc.h4
-rw-r--r--fstree.c2
-rw-r--r--livetree.c8
4 files changed, 10 insertions, 7 deletions
diff --git a/dtc-parser.y b/dtc-parser.y
index bff1337..9b724e5 100644
--- a/dtc-parser.y
+++ b/dtc-parser.y
@@ -284,14 +284,17 @@ propdef:
DT_PROPNODENAME '=' propdata ';'
{
$$ = build_property($1, $3, &@$);
+ free($1);
}
| DT_PROPNODENAME ';'
{
$$ = build_property($1, empty_data, &@$);
+ free($1);
}
| DT_DEL_PROP DT_PROPNODENAME ';'
{
$$ = build_property_delete($2);
+ free($2);
}
| DT_LABEL propdef
{
diff --git a/dtc.h b/dtc.h
index 0a1f549..0fca726 100644
--- a/dtc.h
+++ b/dtc.h
@@ -260,9 +260,9 @@ struct node {
void add_label(struct label **labels, char *label);
void delete_labels(struct label **labels);
-struct property *build_property(char *name, struct data val,
+struct property *build_property(const char *name, struct data val,
struct srcpos *srcpos);
-struct property *build_property_delete(char *name);
+struct property *build_property_delete(const char *name);
struct property *chain_property(struct property *first, struct property *list);
struct property *reverse_properties(struct property *first);
diff --git a/fstree.c b/fstree.c
index 5e59594..0f9a534 100644
--- a/fstree.c
+++ b/fstree.c
@@ -43,7 +43,7 @@ static struct node *read_fstree(const char *dirname)
"WARNING: Cannot open %s: %s\n",
tmpname, strerror(errno));
} else {
- prop = build_property(xstrdup(de->d_name),
+ prop = build_property(de->d_name,
data_copy_file(pfile,
st.st_size),
NULL);
diff --git a/livetree.c b/livetree.c
index f46a098..f76ad7f 100644
--- a/livetree.c
+++ b/livetree.c
@@ -36,27 +36,27 @@ void delete_labels(struct label **labels)
label->deleted = 1;
}
-struct property *build_property(char *name, struct data val,
+struct property *build_property(const char *name, struct data val,
struct srcpos *srcpos)
{
struct property *new = xmalloc(sizeof(*new));
memset(new, 0, sizeof(*new));
- new->name = name;
+ new->name = xstrdup(name);
new->val = val;
new->srcpos = srcpos_copy(srcpos);
return new;
}
-struct property *build_property_delete(char *name)
+struct property *build_property_delete(const char *name)
{
struct property *new = xmalloc(sizeof(*new));
memset(new, 0, sizeof(*new));
- new->name = name;
+ new->name = xstrdup(name);
new->deleted = 1;
return new;