]> git.baikalelectronics.ru Git - kernel.git/commit
MIPS: Bail on unsupported module relocs
authorPaul Burton <paul.burton@imgtec.com>
Thu, 4 Feb 2016 13:05:02 +0000 (13:05 +0000)
committerRalf Baechle <ralf@linux-mips.org>
Sun, 3 Apr 2016 10:32:10 +0000 (12:32 +0200)
commita39d8aef61c8a95a3be30e6b355a551718b6ed46
tree8acdcb1e2379f5707734460608a72b0d214ae831
parent3969b6aa3f1edf74dfa97573c48a19a78d84aa04
MIPS: Bail on unsupported module relocs

When an unsupported reloc is encountered in a module, we currently
blindly branch to whatever would be at its entry in the reloc handler
function pointer arrays. This may be NULL, or if the unsupported reloc
has a type greater than that of the supported reloc with the highest
type then we'll dereference some value after the function pointer array
& branch to that. The result is at best a kernel oops.

Fix this by checking that the reloc type has an entry in the function
pointer array (ie. is less than the number of items in the array) and
that the handler is non-NULL, returning an error code to fail the module
load if no handler is found.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: James Hogan <james.hogan@imgtec.com>
Cc: Steven J. Hill <Steven.Hill@imgtec.com>
Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/12432/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/module-rela.c
arch/mips/kernel/module.c