diff options
author | Jacob Garber <jgarber1@ualberta.ca> | 2019-06-07 10:28:54 -0600 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2019-06-21 08:31:02 +0000 |
commit | 698d83a7c8a93b347c03ff31362866e7a0f92cb7 (patch) | |
tree | 36d7359bb5aa51becc429570acadd93c2d98a1a1 /src | |
parent | 176670e31a156358cd8f2ac6ee4a5eb0dd74f54f (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>
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/device_tree.c | 2 |
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) |