diff options
author | kib <kib@FreeBSD.org> | 2011-01-27 21:45:38 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2011-01-27 21:45:38 +0000 |
commit | 9ef096a59109a579e49be6857beebf85373b199c (patch) | |
tree | 759389804174366032d091f8cd0c0da2688c7343 /sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c | |
parent | 4442689877efe5b0fc6f72770bdf3192375ba193 (diff) | |
download | FreeBSD-src-9ef096a59109a579e49be6857beebf85373b199c.zip FreeBSD-src-9ef096a59109a579e49be6857beebf85373b199c.tar.gz |
linux_sigreturn() loads the struct trapframe from l_sigcontext
members, thus making a signed extension of 32 bit register
context. If the register is not touched in usermode between
return from signal and next syscall entry, the sign-extension
part of 64bit register is not cleared, causing
linux32_fetch_syscall_args() to read wrong values.
Use unsigned type for the registers in the linux sigcontext.
Reported by: Jacob Frelinger <jacob.frelinger duke edu>, arundel
In collaboration with: dchagin
MFC after: 1 week
Diffstat (limited to 'sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c')
0 files changed, 0 insertions, 0 deletions