From a good programming practice perspective, especially in more complex programs, explicitly freeing allocated memory is a good habit.
Signed-off-by: Zhu Jun zhujun2@cmss.chinamobile.com --- tools/testing/selftests/memfd/memfd_test.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/tools/testing/selftests/memfd/memfd_test.c b/tools/testing/selftests/memfd/memfd_test.c index 95af2d78fd31..f842a4aeb47d 100644 --- a/tools/testing/selftests/memfd/memfd_test.c +++ b/tools/testing/selftests/memfd/memfd_test.c @@ -661,9 +661,11 @@ static void mfd_assert_grow_write(int fd) l = pwrite(fd, buf, mfd_def_size * 8, 0); if (l != (mfd_def_size * 8)) { printf("pwrite() failed: %m\n"); + free(buf); abort(); }
+ free(buf); mfd_assert_size(fd, mfd_def_size * 8); }
@@ -685,8 +687,11 @@ static void mfd_fail_grow_write(int fd) l = pwrite(fd, buf, mfd_def_size * 8, 0); if (l == (mfd_def_size * 8)) { printf("pwrite() didn't fail as expected\n"); + free(buf); abort(); } + + free(buf); }
static void mfd_assert_mode(int fd, int mode) @@ -771,9 +776,11 @@ static pid_t spawn_thread(unsigned int flags, int (*fn)(void *), void *arg) pid = clone(fn, stack + STACK_SIZE, SIGCHLD | flags, arg); if (pid < 0) { printf("clone() failed: %m\n"); + free(stack); abort(); }
+ free(stack); return pid; }
On 7/10/24 01:33, Zhu Jun wrote:
From a good programming practice perspective, especially in more complex programs, explicitly freeing allocated memory is a good habit.
The change looks good to me, however can you elaborate more on what kind of leak your fixing here?
Signed-off-by: Zhu Jun zhujun2@cmss.chinamobile.com
tools/testing/selftests/memfd/memfd_test.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/tools/testing/selftests/memfd/memfd_test.c b/tools/testing/selftests/memfd/memfd_test.c index 95af2d78fd31..f842a4aeb47d 100644 --- a/tools/testing/selftests/memfd/memfd_test.c +++ b/tools/testing/selftests/memfd/memfd_test.c @@ -661,9 +661,11 @@ static void mfd_assert_grow_write(int fd) l = pwrite(fd, buf, mfd_def_size * 8, 0); if (l != (mfd_def_size * 8)) { printf("pwrite() failed: %m\n");
abort(); }free(buf);
- free(buf); mfd_assert_size(fd, mfd_def_size * 8); }
@@ -685,8 +687,11 @@ static void mfd_fail_grow_write(int fd) l = pwrite(fd, buf, mfd_def_size * 8, 0); if (l == (mfd_def_size * 8)) { printf("pwrite() didn't fail as expected\n");
abort(); }free(buf);
- free(buf); }
static void mfd_assert_mode(int fd, int mode) @@ -771,9 +776,11 @@ static pid_t spawn_thread(unsigned int flags, int (*fn)(void *), void *arg) pid = clone(fn, stack + STACK_SIZE, SIGCHLD | flags, arg); if (pid < 0) { printf("clone() failed: %m\n");
abort(); }free(stack);
- free(stack); return pid; }
thanks, -- Shuah
linux-kselftest-mirror@lists.linaro.org