diff options
author | Miaoqian Lin <linmq006@gmail.com> | 2022-12-05 12:44:27 +0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2023-01-18 11:41:30 +0100 |
commit | 2b7ad4357438ed055e87822cfc0069c33476c589 (patch) | |
tree | e52590d1a5eaf476763e660ced387da5ae0c7383 /tools | |
parent | 39633b4051eeb1dc7ad01e0d90e156b3ac3a23a4 (diff) | |
download | linux-stable-2b7ad4357438ed055e87822cfc0069c33476c589.tar.gz linux-stable-2b7ad4357438ed055e87822cfc0069c33476c589.tar.bz2 linux-stable-2b7ad4357438ed055e87822cfc0069c33476c589.zip |
selftests/powerpc: Fix resource leaks
[ Upstream commit 8f4ab7da904ab7027ccd43ddb4f0094e932a5877 ]
In check_all_cpu_dscr_defaults, opendir() opens the directory stream.
Add missing closedir() in the error path to release it.
In check_cpu_dscr_default, open() creates an open file descriptor.
Add missing close() in the error path to release it.
Fixes: ebd5858c904b ("selftests/powerpc: Add test for all DSCR sysfs interfaces")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20221205084429.570654-1-linmq006@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/testing/selftests/powerpc/dscr/dscr_sysfs_test.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/tools/testing/selftests/powerpc/dscr/dscr_sysfs_test.c b/tools/testing/selftests/powerpc/dscr/dscr_sysfs_test.c index 02f6b4efde14..e54d7a4089ea 100644 --- a/tools/testing/selftests/powerpc/dscr/dscr_sysfs_test.c +++ b/tools/testing/selftests/powerpc/dscr/dscr_sysfs_test.c @@ -24,6 +24,7 @@ static int check_cpu_dscr_default(char *file, unsigned long val) rc = read(fd, buf, sizeof(buf)); if (rc == -1) { perror("read() failed"); + close(fd); return 1; } close(fd); @@ -65,8 +66,10 @@ static int check_all_cpu_dscr_defaults(unsigned long val) if (access(file, F_OK)) continue; - if (check_cpu_dscr_default(file, val)) + if (check_cpu_dscr_default(file, val)) { + closedir(sysfs); return 1; + } } closedir(sysfs); return 0; |