From 43d976edd03df9321e528624ba61c40bca64a87c Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 20 Dec 2006 20:28:20 +0000 Subject: [PATCH] Prevent NULL from ever pointing to some real code or data. (This was causing the serial console to ignore input, because it happened to end up linked with serial_ischar() at address 0, which core/console.c decided was invalid). --- src/arch/i386/scripts/i386-kir.lds | 4 ++++ src/arch/i386/scripts/i386.lds | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/src/arch/i386/scripts/i386-kir.lds b/src/arch/i386/scripts/i386-kir.lds index 3095b311..401298c9 100644 --- a/src/arch/i386/scripts/i386-kir.lds +++ b/src/arch/i386/scripts/i386-kir.lds @@ -64,6 +64,8 @@ SECTIONS { . = _text16_link_addr; _text16 = .; + . += 1; /* Prevent NULL being valid */ + .text16 : AT ( _text16_load_offset + __text16 ) { __text16 = .; *(.text.null_trap) @@ -80,6 +82,8 @@ SECTIONS { . = _data16_link_addr; _data16 = .; + . += 1; /* Prevent NULL being valid */ + .rodata16 : AT ( _data16_load_offset + __rodata16 ) { __rodata16 = .; *(.rodata16) diff --git a/src/arch/i386/scripts/i386.lds b/src/arch/i386/scripts/i386.lds index 30776092..6adb6b99 100644 --- a/src/arch/i386/scripts/i386.lds +++ b/src/arch/i386/scripts/i386.lds @@ -65,6 +65,8 @@ SECTIONS { . = _text16_link_addr; _text16 = .; + . += 1; /* Prevent NULL being valid */ + .text16 : AT ( _text16_load_offset + __text16 ) { __text16 = .; *(.text16) @@ -78,6 +80,8 @@ SECTIONS { . = _data16_link_addr; _data16 = .; + . += 1; /* Prevent NULL being valid */ + .rodata16 : AT ( _data16_load_offset + __rodata16 ) { __rodata16 = .; *(.rodata16) @@ -115,6 +119,8 @@ SECTIONS { _text = .; + . += 1; /* Prevent NULL being valid */ + .text : AT ( _textdata_load_offset + __text ) { __text = .; *(.text.null_trap)