x86-64: Fix register leak in 32-bit syscall audting
commit092afb745d0dfdd6cf5ed86ed301023285700fd2
authorJan Beulich <JBeulich@novell.com>
Mon, 26 Oct 2009 15:20:29 +0000 (26 15:20 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 10 Nov 2009 00:22:34 +0000 (9 16:22 -0800)
tree680a0e199b524feaa919a49557cc1cdbd72d494b
parent82a90819b2992515f794b032ee7d75fba4771e33
x86-64: Fix register leak in 32-bit syscall audting

commit 81766741fe1eee3884219e8daaf03f466f2ed52f upstream.

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>
LKML-Reference: <4AE5CC4D020000780001BD13@vpn.id2.novell.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/x86/ia32/ia32entry.S