]> 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>
Thu, 13 Sep 2012 01:01:27 +0000 (11:01 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Thu, 20 Sep 2012 07:05:25 +0000 (17:05 +1000)
commit561d7775f16ee69fe738c8735688f8c490f805f7
tree4b016c52d14cb193afb6d09a0b06870919d0ef3f
parent2f4b0885411a9a8b1ccc863d8511c6c8bbe84b50
coredump: prevent double-free on an error path in core dumper

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>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
fs/binfmt_elf.c