diff options
author | Andi Kleen <ak@suse.de> | 2005-12-12 22:17:12 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-12-12 22:31:16 -0800 |
commit | df818a52fb5e64c72b21029fb9ba80583106932c (patch) | |
tree | fd71417e26af6dd57e26730541dd53f0609e08e3 /arch | |
parent | d6ece5491ae71ded1237f59def88bcd1b19b6f60 (diff) | |
download | lwn-df818a52fb5e64c72b21029fb9ba80583106932c.tar.gz lwn-df818a52fb5e64c72b21029fb9ba80583106932c.zip |
[PATCH] x86_64: Fix 32bit thread coredumps
When a register set is passed in don't try to fix up the pointer.
Noticed by Al Viro
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86_64/ia32/ia32_binfmt.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/x86_64/ia32/ia32_binfmt.c b/arch/x86_64/ia32/ia32_binfmt.c index 830feb272eca..2b760d0d9ce2 100644 --- a/arch/x86_64/ia32/ia32_binfmt.c +++ b/arch/x86_64/ia32/ia32_binfmt.c @@ -217,8 +217,7 @@ elf_core_copy_task_fpregs(struct task_struct *tsk, struct pt_regs *regs, elf_fpr if (!tsk_used_math(tsk)) return 0; if (!regs) - regs = (struct pt_regs *)tsk->thread.rsp0; - --regs; + regs = ((struct pt_regs *)tsk->thread.rsp0) - 1; if (tsk == current) unlazy_fpu(tsk); set_fs(KERNEL_DS); |