diff options
author | jmallett <jmallett@FreeBSD.org> | 2010-07-29 02:32:21 +0000 |
---|---|---|
committer | jmallett <jmallett@FreeBSD.org> | 2010-07-29 02:32:21 +0000 |
commit | ce09b77dffc110690f8cc8729e3ad2da62d90415 (patch) | |
tree | 3d30464b5797d4a0d1356071e6106a87e7321687 /sys/netinet/sctp_timer.c | |
parent | b6b6deae713ea8abc1a351f07286e1bf6d574179 (diff) | |
download | FreeBSD-src-ce09b77dffc110690f8cc8729e3ad2da62d90415.zip FreeBSD-src-ce09b77dffc110690f8cc8729e3ad2da62d90415.tar.gz |
o) Subtract 64K from the default userland stack pointer. GCC generate code
that with a 32-bit ABI on a system with 64-bit registers can attempt to
access an invalid (well, kernel) memory address rather than the intended
user address for stack-relative loads and stores. Lowering the stack
pointer works around this. [1]
o) Make TRAP_DEBUG code conditional on the trap_debug variable. Make
trap_debug default to 0 instead of 1 now but make it possible to change it
at runtime using sysctl.
o) Kill programs that attempt an unaligned access of a kernel address. Note
that with some ABIs, calling useracc() is not sufficient since the register
may be 64-bit but vm_offset_t is 32-bit so a kernel address could be
truncated to what looks like a valid user address, allowing the user to
crash the kernel.
o) Clean up unaligned access emulation to support unaligned 16-bit and 64-bit
accesses. (For 16-bit accesses it was checking for user access to too much
memory (4 bytes) and there was no 64-bit support.) This still lacks support
for unaligned load-linked and store-conditional.
Reviewed by: [1] gonzo
Diffstat (limited to 'sys/netinet/sctp_timer.c')
0 files changed, 0 insertions, 0 deletions