kernel-fxtec-pro1x/include
Suresh Siddha 6ffac1e90a x64, fpu: fix possible FPU leakage in error conditions
On Thu, Jul 24, 2008 at 03:43:44PM -0700, Linus Torvalds wrote:
> So how about this patch as a starting point? This is the RightThing(tm) to
> do regardless, and if it then makes it easier to do some other cleanups,
> we should do it first. What do you think?

restore_fpu_checking() calls init_fpu() in error conditions.

While this is wrong(as our main intention is to clear the fpu state of
the thread), this was benign before commit 92d140e21f ("x86: fix taking
DNA during 64bit sigreturn").

Post commit 92d140e21f, live FPU registers may not belong to this
process at this error scenario.

In the error condition for restore_fpu_checking() (especially during the
64bit signal return), we are doing init_fpu(), which saves the live FPU
register state (possibly belonging to some other process context) into
the thread struct (through unlazy_fpu() in init_fpu()). This is wrong
and can leak the FPU data.

For the signal handler restore error condition in restore_i387(), clear
the fpu state present in the thread struct(before ultimately sending a
SIGSEGV for badframe).

For the paranoid error condition check in math_state_restore(), send a
SIGSEGV, if we fail to restore the state.

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: <stable@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-07-26 16:37:04 +02:00
..
acpi Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2008-07-16 17:25:46 -07:00
asm-alpha Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-arm Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-avr32 Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-blackfin Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-cris Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-frv Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-generic Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-h8300 Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-ia64 Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 2008-07-25 17:29:03 -07:00
asm-m32r Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-m68k Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-m68knommu Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-mips Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-mn10300 Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-parisc Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-powerpc Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2008-07-25 11:08:17 -07:00
asm-s390 Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-sh Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-sparc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6 2008-07-25 17:33:34 -07:00
asm-sparc64 remove dummy asm/kvm.h files 2008-07-25 14:35:50 -04:00
asm-um Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-v850 remove the v850 port 2008-07-24 10:47:24 -07:00
asm-x86 x64, fpu: fix possible FPU leakage in error conditions 2008-07-26 16:37:04 +02:00
asm-xtensa Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
crypto crypto: hash - Move ahash functions into crypto/hash.h 2008-07-10 20:35:18 +08:00
drm drm/radeon: fixup issue with radeon and PAT support. 2008-07-15 15:48:05 +10:00
keys
linux sys_paccept definition missing __user annotation 2008-07-25 17:28:49 -07:00
math-emu
media V4L/DVB (8395): saa7134: Fix Kbuild dependency of ir-kbd-i2c 2008-07-20 07:29:03 -03:00
mtd UBI: fix checkpatch.pl errors and warnings 2008-07-24 13:36:09 +03:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-07-25 17:40:16 -07:00
pcmcia
rdma RDMA/cma: Add RDMA_CM_EVENT_TIMEWAIT_EXIT event 2008-07-22 14:14:23 -07:00
rxrpc
scsi driver core: remove KOBJ_NAME_LEN define 2008-07-21 21:54:52 -07:00
sound ALSA: Release v1.0.17 2008-07-14 09:54:43 +02:00
video neofb: drop the xtimings structure 2008-07-24 10:47:41 -07:00
xen xen: implement Xen-specific spinlocks 2008-07-16 11:15:53 +02:00
Kbuild drm: reorganise drm tree to be more future proof. 2008-07-14 10:45:01 +10:00