Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch Fill the .text padding with 0xcc (int3), in such a ...
details: https://anonhg.NetBSD.org/src/rev/041783992860
branches: trunk
changeset: 355866:041783992860
user: maxv <maxv%NetBSD.org@localhost>
date: Fri Aug 18 10:28:53 2017 +0000
description:
Fill the .text padding with 0xcc (int3), in such a way that any jump into
this area will automatically fault. The alignment within the section is
necessary, in order to fill strictly all of the padding (took me a while
to figure this out); but it does not change the kernel size.
Greatly inspired from FreeBSD, but for some reason they decided not to
apply the alignment.
diffstat:
sys/arch/amd64/conf/kern.ldscript | 15 ++++-----------
sys/arch/i386/conf/kern.ldscript | 15 ++++-----------
sys/arch/i386/conf/kern.ldscript.4MB | 15 ++++-----------
3 files changed, 12 insertions(+), 33 deletions(-)
diffs (111 lines):
diff -r 34a6f2e1c60e -r 041783992860 sys/arch/amd64/conf/kern.ldscript
--- a/sys/arch/amd64/conf/kern.ldscript Fri Aug 18 10:02:37 2017 +0000
+++ b/sys/arch/amd64/conf/kern.ldscript Fri Aug 18 10:28:53 2017 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: kern.ldscript,v 1.23 2017/06/14 07:45:45 maxv Exp $ */
+/* $NetBSD: kern.ldscript,v 1.24 2017/08/18 10:28:53 maxv Exp $ */
#include "assym.h"
@@ -13,12 +13,13 @@
ENTRY(_start)
SECTIONS
{
- .text :
+ .text : AT (ADDR(.text) & 0x0fffffff)
{
*(.text)
*(.text.*)
*(.stub)
- }
+ . = ALIGN(__LARGE_PAGE_SIZE);
+ } =0xCC
_etext = . ;
PROVIDE (etext = .) ;
@@ -79,11 +80,3 @@
}
}
-SECTIONS
-{
- .text :
- AT (ADDR(.text) & 0x0fffffff)
- {
- *(.text)
- } = 0
-}
diff -r 34a6f2e1c60e -r 041783992860 sys/arch/i386/conf/kern.ldscript
--- a/sys/arch/i386/conf/kern.ldscript Fri Aug 18 10:02:37 2017 +0000
+++ b/sys/arch/i386/conf/kern.ldscript Fri Aug 18 10:28:53 2017 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: kern.ldscript,v 1.19 2016/05/14 08:19:42 maxv Exp $ */
+/* $NetBSD: kern.ldscript,v 1.20 2017/08/18 10:28:53 maxv Exp $ */
#include "assym.h"
@@ -7,12 +7,13 @@
ENTRY(_start)
SECTIONS
{
- .text :
+ .text : AT (ADDR(.text) & 0x0fffffff)
{
*(.text)
*(.text.*)
*(.stub)
- }
+ . = ALIGN(__PAGE_SIZE);
+ } =0xCC
_etext = . ;
PROVIDE (etext = .) ;
@@ -69,11 +70,3 @@
}
}
-SECTIONS
-{
- .text :
- AT (ADDR(.text) & 0x0fffffff)
- {
- *(.text)
- } = 0
-}
diff -r 34a6f2e1c60e -r 041783992860 sys/arch/i386/conf/kern.ldscript.4MB
--- a/sys/arch/i386/conf/kern.ldscript.4MB Fri Aug 18 10:02:37 2017 +0000
+++ b/sys/arch/i386/conf/kern.ldscript.4MB Fri Aug 18 10:28:53 2017 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: kern.ldscript.4MB,v 1.17 2016/05/16 07:52:31 maxv Exp $ */
+/* $NetBSD: kern.ldscript.4MB,v 1.18 2017/08/18 10:28:53 maxv Exp $ */
#include "assym.h"
@@ -12,12 +12,13 @@
ENTRY(_start)
SECTIONS
{
- .text :
+ .text : AT (ADDR(.text) & 0x0fffffff)
{
*(.text)
*(.text.*)
*(.stub)
- }
+ . = ALIGN(__LARGE_PAGE_SIZE);
+ } =0xCC
_etext = . ;
PROVIDE (etext = .) ;
@@ -78,11 +79,3 @@
}
}
-SECTIONS
-{
- .text :
- AT (ADDR(.text) & 0x0fffffff)
- {
- *(.text)
- } = 0
-}
Home |
Main Index |
Thread Index |
Old Index