[PATCH ] perf test pmu: Fix file Leak in test_format_dir_get

From: Samasth Norway Ananda
Date: Tue Mar 05 2024 - 20:41:44 EST


File is opened inside the for loop. But if the 'if' condition is
successful then 'break' statement will be reached, exiting the
'for' loop prior to reaching 'fclose'.

Signed-off-by: Samasth Norway Ananda <samasth.norway.ananda@xxxxxxxxxx>
---
Found this error through static analysis. This has only been compile
tested.
---
tools/perf/tests/pmu.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/tools/perf/tests/pmu.c b/tools/perf/tests/pmu.c
index 8f18127d876a..f751e6cb6ac0 100644
--- a/tools/perf/tests/pmu.c
+++ b/tools/perf/tests/pmu.c
@@ -106,8 +106,10 @@ static char *test_format_dir_get(char *dir, size_t sz)
if (!file)
return NULL;

- if (1 != fwrite(format->value, strlen(format->value), 1, file))
+ if (1 != fwrite(format->value, strlen(format->value), 1, file)) {
+ fclose(file);
break;
+ }

fclose(file);
}
--
2.43.0