[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250114022929.46364-1-liuye@kylinos.cn>
Date: Tue, 14 Jan 2025 10:29:29 +0800
From: liuye <liuye@...inos.cn>
To: akpm@...ux-foundation.org,
shuah@...nel.org
Cc: linux-mm@...ck.org,
linux-kselftest@...r.kernel.org,
linux-kernel@...r.kernel.org,
liuye <liuye@...inos.cn>
Subject: [PATCH] selftests/mm/cow : Fix memory leak in child_vmsplice_memcmp_fn()
Release memory before exception branch returns to prevent memory leaks.
Signed-off-by: liuye <liuye@...inos.cn>
---
tools/testing/selftests/mm/cow.c | 21 ++++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)
diff --git a/tools/testing/selftests/mm/cow.c b/tools/testing/selftests/mm/cow.c
index 1238e1c5aae1..959327ba6258 100644
--- a/tools/testing/selftests/mm/cow.c
+++ b/tools/testing/selftests/mm/cow.c
@@ -167,19 +167,30 @@ static int child_vmsplice_memcmp_fn(char *mem, size_t size,
/* Backup the original content. */
memcpy(old, mem, size);
- if (pipe(fds) < 0)
+ if (pipe(fds) < 0) {
+ free(old);
+ free(new);
return -errno;
-
+ }
/* Trigger a read-only pin. */
transferred = vmsplice(fds[1], &iov, 1, 0);
- if (transferred < 0)
+ if (transferred < 0) {
+ free(old);
+ free(new);
return -errno;
- if (transferred == 0)
+ }
+ if (transferred == 0) {
+ free(old);
+ free(new);
return -EINVAL;
+ }
/* Unmap it from our page tables. */
- if (munmap(mem, size) < 0)
+ if (munmap(mem, size) < 0) {
+ free(old);
+ free(new);
return -errno;
+ }
/* Wait until the parent modified it. */
write(comm_pipes->child_ready[1], "0", 1);
--
2.25.1
Powered by blists - more mailing lists