[PATCH] lib: fwts_framework: free resources on error

Colin King colin.king at canonical.com
Tue May 7 06:53:37 UTC 2013


From: Colin Ian King <colin.king at canonical.com>

Coverity CID#997345: Resource leak

We need to free args and fw on fwts_args_add_option() error
exit.

Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
 src/lib/src/fwts_framework.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/lib/src/fwts_framework.c b/src/lib/src/fwts_framework.c
index 57079e6..67dd3ab 100644
--- a/src/lib/src/fwts_framework.c
+++ b/src/lib/src/fwts_framework.c
@@ -1195,7 +1195,7 @@ int fwts_framework_args(const int argc, char **argv)
 	ret = fwts_args_add_options(fwts_framework_options,
 		fwts_framework_options_handler, NULL);
 	if (ret == FWTS_ERROR)
-		return ret;
+		goto tidy_args;
 
 	fw->firmware_type = fwts_firmware_detect();
 
@@ -1354,7 +1354,6 @@ tidy:
 tidy_close:
 	fwts_acpi_free_tables();
 	fwts_summary_deinit();
-	fwts_args_free();
 
 	free(fw->lspci);
 	free(fw->results_logname);
@@ -1370,6 +1369,8 @@ tidy_close:
 	if ((fw->total.failed > 0) || (fw->total.warning > 0))
 		ret = FWTS_ERROR;
 
+tidy_args:
+	fwts_args_free();
 	free(fw);
 
 	return ret;
-- 
1.8.1.2




More information about the fwts-devel mailing list