summaryrefslogtreecommitdiff
path: root/drivers/core/ofnode.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/core/ofnode.c')
-rw-r--r--drivers/core/ofnode.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c
index d605c0f7b7c..b5d13c43db1 100644
--- a/drivers/core/ofnode.c
+++ b/drivers/core/ofnode.c
@@ -130,8 +130,10 @@ int oftree_new(oftree *treep)
if (!fdt)
return log_msg_ret("fla", -ENOMEM);
ret = fdt_create_empty_tree(fdt, size);
- if (ret)
+ if (ret) {
+ free(fdt);
return log_msg_ret("fla", -EINVAL);
+ }
oftree_list[oftree_count++] = fdt;
tree.fdt = fdt;
}
@@ -1798,10 +1800,9 @@ int ofnode_write_prop(ofnode node, const char *propname, const void *value,
void *newval;
if (copy) {
- newval = malloc(len);
+ newval = memdup(value, len);
if (!newval)
return log_ret(-ENOMEM);
- memcpy(newval, value, len);
value = newval;
}
ret = of_write_prop(ofnode_to_np(node), propname, len, value);