summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Garber <jgarber1@ualberta.ca>2019-06-07 10:28:54 -0600
committerPatrick Georgi <pgeorgi@google.com>2019-06-21 08:31:02 +0000
commit698d83a7c8a93b347c03ff31362866e7a0f92cb7 (patch)
tree36d7359bb5aa51becc429570acadd93c2d98a1a1
parent176670e31a156358cd8f2ac6ee4a5eb0dd74f54f (diff)
lib: Prevent memory leak on error path
Free the tree before returning to prevent a leak. Change-Id: I1132c0e7404eec1af3adc19a83257f28563f8a58 Signed-off-by: Jacob Garber <jgarber1@ualberta.ca> Found-by: Coverity CID 1401799 Reviewed-on: https://review.coreboot.org/c/coreboot/+/33298 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
-rw-r--r--src/lib/device_tree.c2
1 files changed, 2 insertions, 0 deletions
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)