]> git.baikalelectronics.ru Git - kernel.git/commit
x86/module: Detect and skip invalid relocations
authorJosh Poimboeuf <jpoimboe@redhat.com>
Fri, 3 Nov 2017 12:58:54 +0000 (07:58 -0500)
committerIngo Molnar <mingo@kernel.org>
Sun, 5 Nov 2017 08:52:16 +0000 (09:52 +0100)
commitb6aec59490c0b265b8aa52a7eb8cf1aad5d9547e
tree36d9d40657db3ee47c3c38f9d255b6e763539628
parent3ec0a1eac413bbed59764139a6f9844eac5275cc
x86/module: Detect and skip invalid relocations

There have been some cases where external tooling (e.g., kpatch-build)
creates a corrupt relocation which targets the wrong address.  This is a
silent failure which can corrupt memory in unexpected places.

On x86, the bytes of data being overwritten by relocations are always
initialized to zero beforehand.  Use that knowledge to add sanity checks
to detect such cases before they corrupt memory.

Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: jeyu@kernel.org
Cc: live-patching@vger.kernel.org
Link: http://lkml.kernel.org/r/37450d6c6225e54db107fba447ce9e56e5f758e9.1509713553.git.jpoimboe@redhat.com
[ Restructured the messages, as it's unclear whether the relocation or the target is corrupted. ]
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/x86/kernel/module.c