linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] selftests/mm/cow : Fix memory leak in child_vmsplice_memcmp_fn()
@ 2025-01-14  2:29 liuye
  2025-01-14 10:23 ` David Hildenbrand
  0 siblings, 1 reply; 4+ messages in thread
From: liuye @ 2025-01-14  2:29 UTC (permalink / raw)
  To: akpm, shuah; +Cc: linux-mm, linux-kselftest, linux-kernel, liuye

    Release memory before exception branch returns to prevent memory leaks.

Signed-off-by: liuye <liuye@kylinos.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



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-01-20 20:16 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-01-14  2:29 [PATCH] selftests/mm/cow : Fix memory leak in child_vmsplice_memcmp_fn() liuye
2025-01-14 10:23 ` David Hildenbrand
2025-01-15  5:45   ` liuye
2025-01-20 20:16     ` David Hildenbrand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox