The opened file should be closed in main(), otherwise resource leak will occur that this problem was discovered by code reading
Signed-off-by: zhujun2 zhujun2@cmss.chinamobile.com --- tools/testing/selftests/media_tests/media_device_open.c | 3 +++ tools/testing/selftests/media_tests/media_device_test.c | 3 +++ 2 files changed, 6 insertions(+)
diff --git a/tools/testing/selftests/media_tests/media_device_open.c b/tools/testing/selftests/media_tests/media_device_open.c index 93183a37b133..2dfb2a11b148 100644 --- a/tools/testing/selftests/media_tests/media_device_open.c +++ b/tools/testing/selftests/media_tests/media_device_open.c @@ -70,6 +70,7 @@ int main(int argc, char **argv) fd = open(media_device, O_RDWR); if (fd == -1) { printf("Media Device open errno %s\n", strerror(errno)); + close(fd); exit(-1); }
@@ -79,4 +80,6 @@ int main(int argc, char **argv) else printf("Media device model %s driver %s\n", mdi.model, mdi.driver); + + close(fd); } diff --git a/tools/testing/selftests/media_tests/media_device_test.c b/tools/testing/selftests/media_tests/media_device_test.c index 4b9953359e40..7cabb62535a7 100644 --- a/tools/testing/selftests/media_tests/media_device_test.c +++ b/tools/testing/selftests/media_tests/media_device_test.c @@ -79,6 +79,7 @@ int main(int argc, char **argv) fd = open(media_device, O_RDWR); if (fd == -1) { printf("Media Device open errno %s\n", strerror(errno)); + close(fd); exit(-1); }
@@ -100,4 +101,6 @@ int main(int argc, char **argv) sleep(10); count--; } + + close(fd); }
On 2023-11-14 04:38, zhujun2 wrote:
The opened file should be closed in main(), otherwise resource leak will occur that this problem was discovered by code reading
Fixing resource leaks for one-off test cases (processes execute and then immediately exit) seems to be something that would fit in the definition of "trivial", so I would advise to perhaps send those patches to kernel-janitors@vger.kernel.org ?
[...]
- close(fd);
These added calls to close(2) miss handling of possible close errors (check return value and use errno to print an error).
Thanks,
Mathieu
The opened file should be closed in main(), otherwise resource leak will occur that this problem was discovered by code reading
Signed-off-by: zhujun2 zhujun2@cmss.chinamobile.com --- tools/testing/selftests/media_tests/media_device_open.c | 3 +++ tools/testing/selftests/media_tests/media_device_test.c | 3 +++ 2 files changed, 6 insertions(+)
diff --git a/tools/testing/selftests/media_tests/media_device_open.c b/tools/testing/selftests/media_tests/media_device_open.c index 93183a37b133..2dfb2a11b148 100644 --- a/tools/testing/selftests/media_tests/media_device_open.c +++ b/tools/testing/selftests/media_tests/media_device_open.c @@ -70,6 +70,7 @@ int main(int argc, char **argv) fd = open(media_device, O_RDWR); if (fd == -1) { printf("Media Device open errno %s\n", strerror(errno)); + close(fd); exit(-1); }
@@ -79,4 +80,6 @@ int main(int argc, char **argv) else printf("Media device model %s driver %s\n", mdi.model, mdi.driver); + + close(fd); } diff --git a/tools/testing/selftests/media_tests/media_device_test.c b/tools/testing/selftests/media_tests/media_device_test.c index 4b9953359e40..7cabb62535a7 100644 --- a/tools/testing/selftests/media_tests/media_device_test.c +++ b/tools/testing/selftests/media_tests/media_device_test.c @@ -79,6 +79,7 @@ int main(int argc, char **argv) fd = open(media_device, O_RDWR); if (fd == -1) { printf("Media Device open errno %s\n", strerror(errno)); + close(fd); exit(-1); }
@@ -100,4 +101,6 @@ int main(int argc, char **argv) sleep(10); count--; } + + close(fd); }
On Mon, Nov 20, 2023 at 06:59:18PM -0800, zhujun2 wrote:
The opened file should be closed in main(), otherwise resource leak will occur that this problem was discovered by code reading
Signed-off-by: zhujun2 zhujun2@cmss.chinamobile.com
tools/testing/selftests/media_tests/media_device_open.c | 3 +++ tools/testing/selftests/media_tests/media_device_test.c | 3 +++ 2 files changed, 6 insertions(+)
diff --git a/tools/testing/selftests/media_tests/media_device_open.c b/tools/testing/selftests/media_tests/media_device_open.c index 93183a37b133..2dfb2a11b148 100644 --- a/tools/testing/selftests/media_tests/media_device_open.c +++ b/tools/testing/selftests/media_tests/media_device_open.c @@ -70,6 +70,7 @@ int main(int argc, char **argv) fd = open(media_device, O_RDWR); if (fd == -1) { printf("Media Device open errno %s\n", strerror(errno));
close(fd);
Open failed so there is nothing to close.
exit(-1);
When we exit() then all the resources are automatically reclaimed by the operating system so we really don't worry about leaks at all in short running programs. It's different for an operating system or a web server which is expected to have a long uptime. But these programs are going to run quickly and then exit so resource leaks are not an issue.
regards, dan carpenter
From: zhujun2 zhujun2@cmss.chinamobile.com
The opened file should be closed in main(), otherwise resource leak will occur that this problem was discovered by code reading
Signed-off-by: zhujun2 zhujun2@cmss.chinamobile.com ---
Hi Dan Carpenter I believe that the Linux kernel code is sacred and should strictly adhere to C code conventions
thanks, [Zhu Jun]
tools/testing/selftests/media_tests/media_device_open.c | 2 ++ tools/testing/selftests/media_tests/media_device_test.c | 2 ++ 2 files changed, 4 insertions(+)
diff --git a/tools/testing/selftests/media_tests/media_device_open.c b/tools/testing/selftests/media_tests/media_device_open.c index 93183a37b133..ae263eb78a2c 100644 --- a/tools/testing/selftests/media_tests/media_device_open.c +++ b/tools/testing/selftests/media_tests/media_device_open.c @@ -79,4 +79,6 @@ int main(int argc, char **argv) else printf("Media device model %s driver %s\n", mdi.model, mdi.driver); + + close(fd); } diff --git a/tools/testing/selftests/media_tests/media_device_test.c b/tools/testing/selftests/media_tests/media_device_test.c index 4b9953359e40..65888ce5c89f 100644 --- a/tools/testing/selftests/media_tests/media_device_test.c +++ b/tools/testing/selftests/media_tests/media_device_test.c @@ -100,4 +100,6 @@ int main(int argc, char **argv) sleep(10); count--; } + + close(fd); }
On Tue, Nov 21, 2023 at 01:32:38AM -0800, Zhu Jun wrote:
From: zhujun2 zhujun2@cmss.chinamobile.com
The opened file should be closed in main(), otherwise resource leak will occur that this problem was discovered by code reading
Signed-off-by: zhujun2 zhujun2@cmss.chinamobile.com
Hi Dan Carpenter I believe that the Linux kernel code is sacred and should strictly adhere to C code conventions
*sigh*. You do you, I guess. This patch is pointless but I don't care whether it's merged or not.
regards, dan carpenter
linux-kselftest-mirror@lists.linaro.org