Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5f719558 authored by WANG Cong's avatar WANG Cong Committed by Al Viro
Browse files

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



In kmalloc failing path, we shouldn't free pointers in 'info',
because the struct 'info' is uninitilized when kmalloc is called.

And when kmalloc returns NULL, it's needless to kfree it.

Signed-off-by: default avatarWANG Cong <wangcong@zeuux.org>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Reviewed-by: default avatarPekka Enberg <penberg@cs.helsinki.fi>

--
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent eceea0b3
Loading
Loading
Loading
Loading
+3 −2
Original line number Original line Diff line number Diff line
@@ -1900,7 +1900,7 @@ static int elf_core_dump(long signr, struct pt_regs *regs, struct file *file, un
	/* alloc memory for large data structures: too large to be on stack */
	/* alloc memory for large data structures: too large to be on stack */
	elf = kmalloc(sizeof(*elf), GFP_KERNEL);
	elf = kmalloc(sizeof(*elf), GFP_KERNEL);
	if (!elf)
	if (!elf)
		goto cleanup;
		goto out;
	
	
	segs = current->mm->map_count;
	segs = current->mm->map_count;
#ifdef ELF_CORE_EXTRA_PHDRS
#ifdef ELF_CORE_EXTRA_PHDRS
@@ -2034,8 +2034,9 @@ static int elf_core_dump(long signr, struct pt_regs *regs, struct file *file, un
	set_fs(fs);
	set_fs(fs);


cleanup:
cleanup:
	kfree(elf);
	free_note_info(&info);
	free_note_info(&info);
	kfree(elf);
out:
	return has_dumped;
	return has_dumped;
}
}