[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20070329203913.GA5190@skull.piratehaven.org>
Date: Thu, 29 Mar 2007 13:39:13 -0700
From: Brian Pomerantz <bapper@...atehaven.org>
To: viro@...iv.linux.org.uk
Cc: linux-kernel@...r.kernel.org
Subject: [PATCH] fix page leak during core dump
When the dump cannot occur most likely because of a full file system
and the page to be written is the zero page, the call to
page_cache_release() is missed.
Signed-off-by: Brian Pomerantz <bapper@...sta.com>
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
index a2fceba..9cc4f0a 100644
--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -1704,7 +1704,10 @@ static int elf_core_dump(long signr, struct pt_regs *regs, struct file *file)
DUMP_SEEK(PAGE_SIZE);
} else {
if (page == ZERO_PAGE(addr)) {
- DUMP_SEEK(PAGE_SIZE);
+ if (!dump_seek(file, PAGE_SIZE)) {
+ page_cache_release(page);
+ goto end_coredump;
+ }
} else {
void *kaddr;
flush_cache_page(vma, addr,
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists