From fa917094e1a9a6d75fb0bdfeb9b4aebc1b9f87d6 Mon Sep 17 00:00:00 2001 From: qiuguorui1 Date: Tue, 1 Dec 2020 12:06:16 +0800 Subject: 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 Signed-off-by: Simon Horman --- kexec/dt-ops.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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, "/"); -- cgit 1.2.3-korg