summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorqiuguorui1 <qiuguorui1@huawei.com>2020-12-01 12:06:16 +0800
committerSimon Horman <horms@verge.net.au>2020-12-09 13:42:16 +0100
commitfa917094e1a9a6d75fb0bdfeb9b4aebc1b9f87d6 (patch)
tree1c32b181de9964f6064819520fcfc0e21e586473
parentd4eaff6b84292ca0231505c4aba8cc6b55df79e3 (diff)
downloadkexec-tools-fa917094e1a9a6d75fb0bdfeb9b4aebc1b9f87d6.tar.gz
dt-ops: fix memory leak when new_node malloc fails
In function dtb_set_property, when malloc new_node fails, we need to free new_dtb before return. Fixes: f56cbcf4c2766 ("kexec/dt-ops.c: Fix '/chosen' v/s 'chosen' node being passed to fdt helper functions") Signed-off-by: qiuguorui1 <qiuguorui1@huawei.com> Signed-off-by: Simon Horman <horms@verge.net.au>
-rw-r--r--kexec/dt-ops.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/kexec/dt-ops.c b/kexec/dt-ops.c
index dd2feaad..0a96b75f 100644
--- a/kexec/dt-ops.c
+++ b/kexec/dt-ops.c
@@ -89,7 +89,8 @@ int dtb_set_property(char **dtb, off_t *dtb_size, const char *node,
new_node = malloc(strlen("/") + strlen(node) + 1);
if (!new_node) {
dbgprintf("%s: malloc failed\n", __func__);
- return -ENOMEM;
+ result = -ENOMEM;
+ goto on_error;
}
strcpy(new_node, "/");