diff mbox series

selftests/media_tests: fix a resource leak

Message ID 20231121025918.2570-1-zhujun2@cmss.chinamobile.com (mailing list archive)
State Rejected
Headers show
Series selftests/media_tests: fix a resource leak | expand

Commit Message

Zhu Jun Nov. 21, 2023, 2:59 a.m. UTC
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(+)

Comments

Dan Carpenter Nov. 21, 2023, 7:47 a.m. UTC | #1
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
diff mbox series

Patch

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);
 }