]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerSasha Levin <alexander.levin@microsoft.com>
Wed, 21 Mar 2018 03:49:53 +0000 (23:49 -0400)
commitd94fe45effd5bab920a712f8a51f984591226eb8
tree04498f90294a7e14ed6ccfc22ac47c87a338e1d0
parente9e966cfa034143a0259cbd7a910ba7a0c016776
x86/module: Detect and skip invalid relocations

[ Upstream commit eda9cec4c9a12208a6f69fbe68f72a6311d50032 ]

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>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
arch/x86/kernel/module.c