Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1390654

[PATCH 1/6] x86/KASLR: Handle kernel relocation above 2G

From Kees Cook <keescook@chromium.org>
Newsgroups linux.kernel
Subject [PATCH 1/6] x86/KASLR: Handle kernel relocation above 2G
Date 2016-04-29 02:10 +0200
Message-ID <rt4am-4LZ-13@gated-at.bofh.it> (permalink)
References <rt4am-4LZ-9@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


From: Baoquan He <bhe@redhat.com>

When processing the relocation table, the offset used to calculate the
relocation is an int. This is sufficient for calculating the physical
address of the relocs entry on 32-bit systems and on 64-bit systems when
the relocation is under 2G. To handle relocations above 2G (seen in
situations like kexec, netboot, etc), this offset needs to be calculated
using a long to avoid wrapping and miscalculating the relocation.

Signed-off-by: Baoquan He <bhe@redhat.com>
[kees: rewrote changelog]
Signed-off-by: Kees Cook <keescook@chromium.org>
---
 arch/x86/boot/compressed/misc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c
index 6dde6ccdf00e..45145149c07d 100644
--- a/arch/x86/boot/compressed/misc.c
+++ b/arch/x86/boot/compressed/misc.c
@@ -232,7 +232,7 @@ static void handle_relocations(void *output, unsigned long output_len)
 	 * So we work backwards from the end of the decompressed image.
 	 */
 	for (reloc = output + output_len - sizeof(*reloc); *reloc; reloc--) {
-		int extended = *reloc;
+		long extended = *reloc;
 		extended += map;
 
 		ptr = (unsigned long)extended;
-- 
2.6.3

Back to linux.kernel | Previous | NextNext in thread | Find similar | Unroll thread


Thread

[PATCH 1/6] x86/KASLR: Handle kernel relocation above 2G Kees Cook <keescook@chromium.org> - 2016-04-29 02:10 +0200
  [tip:x86/boot] x86/KASLR: Handle kernel relocations above 2G  correctly tip-bot for Baoquan He <tipbot@zytor.com> - 2016-04-29 10:10 +0200

csiph-web