[PATCH] framework: fix memory leaks caused by fwts_log_get_filenames
Ivan Hu
ivan.hu at canonical.com
Mon Jan 29 07:17:39 UTC 2024
BUgLink: https://bugs.launchpad.net/fwts/+bug/2051480
Got below resource leak error from the coverity scan
*** CID 343913: Resource leaks (RESOURCE_LEAK)
/src/lib/src/fwts_framework.c: 1567 in fwts_framework_args()
1561 /* Results log */
1562 if ((fw->results = fwts_log_open("fwts",
1563 fw->results_logname,
1564 (fw->flags & FWTS_FLAG_FORCE_CLEAN) ? "w" : "a",
1565 fw->log_type)) == NULL) {
1566 ret = FWTS_ERROR;
>>> CID 343913: Resource leaks (RESOURCE_LEAK)
>>> Failing to save or free storage allocated by
"fwts_log_get_filenames(fw->results_logname, fw->log_type)" leaks it.
1567 fprintf(stderr, "%s: Cannot open results log '%s'"
1568 " (you may need to remove it to set proper"
1569 " permissions).\n",
1570 argv[0],
1571 fwts_log_get_filenames(fw->results_logname, fw->log_type));
1572 goto tidy_close;
Signed-off-by: Ivan Hu <ivan.hu at canonical.com>
---
src/lib/src/fwts_framework.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/lib/src/fwts_framework.c b/src/lib/src/fwts_framework.c
index 41124394..b4d3c885 100644
--- a/src/lib/src/fwts_framework.c
+++ b/src/lib/src/fwts_framework.c
@@ -1563,12 +1563,16 @@ int fwts_framework_args(const int argc, char **argv)
fw->results_logname,
(fw->flags & FWTS_FLAG_FORCE_CLEAN) ? "w" : "a",
fw->log_type)) == NULL) {
+ char *filenames = fwts_log_get_filenames(fw->results_logname, fw->log_type);
+
ret = FWTS_ERROR;
fprintf(stderr, "%s: Cannot open results log '%s'"
" (you may need to remove it to set proper"
" permissions).\n",
argv[0],
- fwts_log_get_filenames(fw->results_logname, fw->log_type));
+ filenames ? filenames : fw->results_logname);
+ if (filenames)
+ free(filenames);
goto tidy_close;
}
--
2.34.1
More information about the fwts-devel
mailing list