cbfstool: Fix possible memory leak

Handle the possible memory leak scenario.

Foundby=klocwork
BUG=NONE
TEST=Boot to OS on Nivviks

Change-Id: I01c4643d1e671d9bd9971ac6db8031634fffd61e
Signed-off-by: Shaik Shahina <shahina.shaik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/69220
Reviewed-by: Shahina Shaik <shahina.shaik@intel.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
diff --git a/util/cbfstool/cbfstool.c b/util/cbfstool/cbfstool.c
index 04b91e5..d26c418 100644
--- a/util/cbfstool/cbfstool.c
+++ b/util/cbfstool/cbfstool.c
@@ -770,8 +770,8 @@
 	 */
 	if (param.topswap_size) {
 		if (update_master_header_loc_topswap(&image, h_loc,
-							header_offset))
-			return 1;
+						     header_offset))
+			goto done;
 	}
 
 	ret = maybe_update_metadata_hash(&image);
diff --git a/util/cbfstool/common.c b/util/cbfstool/common.c
index 8ae9120..7154bc9 100644
--- a/util/cbfstool/common.c
+++ b/util/cbfstool/common.c
@@ -34,8 +34,13 @@
 	if (!buffer->data) {
 		fprintf(stderr, "buffer_create: Insufficient memory (0x%zx).\n",
 			size);
+		if (buffer->name) {
+			free(buffer->name);
+			buffer->name = NULL;
+		}
+		return -1;
 	}
-	return (buffer->data == NULL);
+	return 0;
 }
 
 int buffer_from_file_aligned_size(struct buffer *buffer, const char *filename,