use INT3 instead of NOP for x86 binary padding

We should never end up executing the inter-function padding, so we
are better off faulting than silently carrying on to whatever function
happens to be next.

Note that LLD will soon do this by default (although it currently pads
with zeros).

Reviewed by:	dim, kib
MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D10047
This commit is contained in:
Ed Maste 2017-03-19 00:22:13 +00:00
parent c547cbb49c
commit bd4e40546c
4 changed files with 8 additions and 8 deletions

View File

@ -6,7 +6,7 @@ COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
NONPAGED_TEXT_START_ADDR=0x08048000
ARCH=i386
MACHINE=
NOP=0x90909090
NOP=0xCCCCCCCC
TEMPLATE_NAME=elf32
GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes

View File

@ -7,7 +7,7 @@ COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
NONPAGED_TEXT_START_ADDR=0x400000
ARCH="i386:x86-64"
MACHINE=
NOP=0x90909090
NOP=0xCCCCCCCC
TEMPLATE_NAME=elf32
GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes

View File

@ -56,7 +56,7 @@ SECTIONS
.init :
{
KEEP (*(.init))
} =0x90909090
} =0xCCCCCCCC
.plt : { *(.plt) }
.text :
{
@ -64,11 +64,11 @@ SECTIONS
KEEP (*(.text.*personality*))
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
} =0x90909090
} =0xCCCCCCCC
.fini :
{
KEEP (*(.fini))
} =0x90909090
} =0xCCCCCCCC
PROVIDE (__etext = .);
PROVIDE (_etext = .);
PROVIDE (etext = .);

View File

@ -44,7 +44,7 @@ SECTIONS
.init :
{
KEEP (*(.init))
} =0x90909090
} =0xCCCCCCCC
.plt : { *(.plt) }
.text :
{
@ -52,11 +52,11 @@ SECTIONS
KEEP (*(.text.*personality*))
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
} =0x90909090
} =0xCCCCCCCC
.fini :
{
KEEP (*(.fini))
} =0x90909090
} =0xCCCCCCCC
PROVIDE (__etext = .);
PROVIDE (_etext = .);
PROVIDE (etext = .);