MIPS: Fix malformed NT_FILE and NT_SIGINFO in 32bit coredumps
authorAl Viro <viro@zeniv.linux.org.uk>
Thu, 24 Dec 2020 19:44:38 +0000 (19:44 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 19 Jan 2021 17:27:20 +0000 (18:27 +0100)
commit652daca07f4fa8f44f4137ef4490aa14ffbdaeaa
tree6d862cf1e10db2887ac81a8241a623fd4ab0428d
parent9e2413f41aa25442aedfa2d390d6f4dc2f1844de
MIPS: Fix malformed NT_FILE and NT_SIGINFO in 32bit coredumps

commit 698222457465ce343443be81c5512edda86e5914 upstream.

Patches that introduced NT_FILE and NT_SIGINFO notes back in 2012
had taken care of native (fs/binfmt_elf.c) and compat (fs/compat_binfmt_elf.c)
coredumps; unfortunately, compat on mips (which does not go through the
usual compat_binfmt_elf.c) had not been noticed.

As the result, both N32 and O32 coredumps on 64bit mips kernels
have those sections malformed enough to confuse the living hell out of
all gdb and readelf versions (up to and including the tip of binutils-gdb.git).

Longer term solution is to make both O32 and N32 compat use the
regular compat_binfmt_elf.c, but that's too much for backports.  The minimal
solution is to do in arch/mips/kernel/binfmt_elf[on]32.c the same thing
those patches have done in fs/compat_binfmt_elf.c

Cc: stable@kernel.org # v3.7+
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/mips/kernel/binfmt_elfn32.c
arch/mips/kernel/binfmt_elfo32.c