From 698d83a7c8a93b347c03ff31362866e7a0f92cb7 Mon Sep 17 00:00:00 2001 From: Jacob Garber Date: Fri, 7 Jun 2019 10:28:54 -0600 Subject: lib: Prevent memory leak on error path Free the tree before returning to prevent a leak. Change-Id: I1132c0e7404eec1af3adc19a83257f28563f8a58 Signed-off-by: Jacob Garber Found-by: Coverity CID 1401799 Reviewed-on: https://review.coreboot.org/c/coreboot/+/33298 Tested-by: build bot (Jenkins) Reviewed-by: Julius Werner --- src/lib/device_tree.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src') diff --git a/src/lib/device_tree.c b/src/lib/device_tree.c index a5021ca8fd..ed878a25a3 100644 --- a/src/lib/device_tree.c +++ b/src/lib/device_tree.c @@ -259,11 +259,13 @@ struct device_tree *fdt_unflatten(const void *blob) if (magic != FDT_HEADER_MAGIC) { printk(BIOS_DEBUG, "Invalid device tree magic %#.8x!\n", magic); + free(tree); return NULL; } if (last_comp_version > FDT_SUPPORTED_VERSION) { printk(BIOS_DEBUG, "Unsupported device tree version %u(>=%u)\n", version, last_comp_version); + free(tree); return NULL; } if (version > FDT_SUPPORTED_VERSION) -- cgit v1.2.3