In setup_namespace(), f_mountinfo is opened with fopen() at line 115
but is never closed. Multiple ksft_exit_fail_msg() calls exit the
program without closing this file descriptor, and the cleanup_namespace()
function registered with atexit() also doesn't close it.

Add fclose(f_mountinfo) in cleanup_namespace() to ensure the file
descriptor is properly closed on both normal and error exit paths,
since cleanup_namespace() is already registered as an atexit handler.

Signed-off-by: Malaya Kumar Rout <[email protected]>
---
 tools/testing/selftests/filesystems/statmount/statmount_test.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tools/testing/selftests/filesystems/statmount/statmount_test.c 
b/tools/testing/selftests/filesystems/statmount/statmount_test.c
index 8dc018d47a93..7d9035c1815f 100644
--- a/tools/testing/selftests/filesystems/statmount/statmount_test.c
+++ b/tools/testing/selftests/filesystems/statmount/statmount_test.c
@@ -82,6 +82,9 @@ static void cleanup_namespace(void)
 {
        int ret;
 
+       if (f_mountinfo)
+               fclose(f_mountinfo);
+
        ret = fchdir(orig_root);
        if (ret == -1)
                ksft_perror("fchdir to original root");
-- 
2.54.0


Reply via email to