]> git.karo-electronics.de Git - karo-tx-linux.git/commit
coredump: prevent double-free on an error path in core dumper
authorDenys Vlasenko <vda.linux@googlemail.com>
Wed, 26 Sep 2012 01:34:50 +0000 (11:34 +1000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 7 Oct 2012 15:35:55 +0000 (08:35 -0700)
commita4c1d25f27206a872ca0261bffdf3509d4ef6fc8
tree5ea4d8643689ef9815099fa4cb9a7a9994594939
parentd4663b9b9f18c0c818f9632fc4bf194521c4fe76
coredump: prevent double-free on an error path in core dumper

commit f34f9d186df35e5c39163444c43b4fc6255e39c5 upstream.

In !CORE_DUMP_USE_REGSET case, if elf_note_info_init fails to allocate
memory for info->fields, it frees already allocated stuff and returns
error to its caller, fill_note_info.  Which in turn returns error to its
caller, elf_core_dump.  Which jumps to cleanup label and calls
free_note_info, which will happily try to free all info->fields again.
BOOM.

This is the fix.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Cc: Venu Byravarasu <vbyravarasu@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/binfmt_elf.c