x86-64: Fix register leak in 32-bit syscall audting
authorJan Beulich <JBeulich@novell.com>
Mon, 26 Oct 2009 15:20:29 +0000 (15:20 +0000)
committerIngo Molnar <mingo@elte.hu>
Mon, 26 Oct 2009 15:23:26 +0000 (16:23 +0100)
commit81766741fe1eee3884219e8daaf03f466f2ed52f
tree0afde40852f608ed101d03a83ef49ef74ccbb434
parent72ed7de74e8f0fad0d8e567ae1f987b740accb3f
x86-64: Fix register leak in 32-bit syscall audting

Restoring %ebp after the call to audit_syscall_exit() is not
only unnecessary (because the register didn't get clobbered),
but in the sysenter case wasn't even doing the right thing: It
loaded %ebp from a location below the top of stack (RBP <
ARGOFFSET), i.e. arbitrary kernel data got passed back to user
mode in the register.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Acked-by: Roland McGrath <roland@redhat.com>
Cc: <stable@kernel.org>
LKML-Reference: <4AE5CC4D020000780001BD13@vpn.id2.novell.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/ia32/ia32entry.S