firmware: Avoid memory leak

get_em100_file() allocates memory that isn't freed by
tar_load_compressed, so keep the pointer around to free it on our own.

Found-by: Coverity Scan #264515
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Change-Id: I3dca14e7a02c98e7be535b3534eb89400f31c32f
Reviewed-on: https://review.coreboot.org/c/em100/+/40649
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
diff --git a/firmware.c b/firmware.c
index 59e1765..f86362c 100644
--- a/firmware.c
+++ b/firmware.c
@@ -267,7 +267,9 @@
 
 	if (!strncasecmp(filename, "auto", 5)) {
 		printf("\nAutomatic firmware update.\n");
-		TFILE *f = tar_load_compressed(get_em100_file("firmware.tar.xz"));
+		char *firmware_bundle = get_em100_file("firmware.tar.xz");
+		TFILE *f = tar_load_compressed(firmware_bundle);
+		free(firmware_bundle);
 		firmware_update_t data;
 		data.em100 = em100;
 		data.autoupdate_file = NULL;