From 3a82e9b8a32b80edc5f21bb7f4dae4dcb1d047b2 Mon Sep 17 00:00:00 2001 From: Jacob Garber Date: Thu, 18 Jul 2019 15:57:45 -0600 Subject: [PATCH] util/cbfstool/flashmap: Fix memory leaks on failure Fix several memory leaks on failed printing or tests. These don't matter much, but it keeps Coverity happy. Change-Id: Ie750acb50ae1590c3aea533338a8827c03459c1a Signed-off-by: Jacob Garber Found-by: Coverity CID 130245{1,2,3} Reviewed-on: https://review.coreboot.org/c/coreboot/+/34412 Tested-by: build bot (Jenkins) Reviewed-by: HAOUAS Elyes --- util/cbfstool/flashmap/fmap.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/util/cbfstool/flashmap/fmap.c b/util/cbfstool/flashmap/fmap.c index 06f179f1f94f..6255fc563377 100644 --- a/util/cbfstool/flashmap/fmap.c +++ b/util/cbfstool/flashmap/fmap.c @@ -236,8 +236,11 @@ int fmap_print(const struct fmap *fmap) /* Print descriptive strings for flags rather than the field */ flags = fmap->areas[i].flags; - if ((str = fmap_flags_to_string(flags)) == NULL) + str = fmap_flags_to_string(flags); + if (str == NULL) { + kv_pair_free(pair); return -1; + } kv_pair_fmt(pair, "area_flags", "%s", str); free(str); @@ -509,7 +512,8 @@ fmap_find_area_test_exit: static int fmap_flags_to_string_test(void) { - char *str, *my_str; + char *str = NULL; + char *my_str = NULL; unsigned int i; uint16_t flags; @@ -555,11 +559,11 @@ static int fmap_flags_to_string_test(void) printf("FAILURE: bad result from fmap_flags_to_string\n"); goto fmap_flags_to_string_test_exit; } - free(my_str); - free(str); status = pass; fmap_flags_to_string_test_exit: + free(str); + free(my_str); return status; }