login
Header Space

 
 

Re: [Patch] fs/binfmt_elf.c: fix a wrong free

Score:
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: WANG Cong <xiyou.wangcong@...>
Cc: LKML <linux-kernel@...>, Eric Youngdale <ericy@...>, <viro@...>, <linux-fsdevel@...>, Andrew Morton <akpm@...>
Date: Saturday, May 3, 2008 - 9:26 am

On Sat, 3 May 2008, WANG Cong wrote:

Looks like fill_note_info() requires that you call free_note_info() if it 
fails; otherwise we'll leak memory. So perhaps something like the 
following totally untested patch?

		Pekka

diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
index b25707f..febd208 100644
--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -1917,7 +1917,7 @@ static int elf_core_dump(long signr, struct pt_regs *regs, struct file *file, un
 	 */
 	if (!fill_note_info(elf, segs + 1, /* including notes section */
 			    &info, signr, regs))
-		goto cleanup;
+		goto cleanup_note;
 
 	has_dumped = 1;
 	current->flags |= PF_DUMPCORE;
@@ -2033,9 +2033,11 @@ static int elf_core_dump(long signr, struct pt_regs *regs, struct file *file, un
 end_coredump:
 	set_fs(fs);
 
+cleanup_note:
+	free_note_info(&info);
+
 cleanup:
 	kfree(elf);
-	free_note_info(&info);
 	return has_dumped;
 }
 
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[Patch] fs/binfmt_elf.c: fix a wrong free, WANG Cong, (Sat May 3, 8:46 am)
Re: [Patch] fs/binfmt_elf.c: fix a wrong free, Pekka J Enberg, (Sat May 3, 9:26 am)
Re: [Patch] fs/binfmt_elf.c: fix a wrong free, WANG Cong, (Sat May 3, 10:39 am)
Re: [Patch] fs/binfmt_elf.c: fix a wrong free, Pekka Enberg, (Sun May 4, 6:39 am)
Re: [Patch] fs/binfmt_elf.c: fix a wrong free, WANG Cong, (Sun May 4, 10:30 am)
speck-geostationary