diff options
author | Jan Beulich <JBeulich@novell.com> | 2009-10-26 15:20:29 +0000 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-10-26 16:23:26 +0100 |
commit | 81766741fe1eee3884219e8daaf03f466f2ed52f (patch) | |
tree | 0afde40852f608ed101d03a83ef49ef74ccbb434 /arch/x86/kernel/visws_quirks.c | |
parent | 72ed7de74e8f0fad0d8e567ae1f987b740accb3f (diff) | |
download | linux-81766741fe1eee3884219e8daaf03f466f2ed52f.tar.gz linux-81766741fe1eee3884219e8daaf03f466f2ed52f.tar.bz2 linux-81766741fe1eee3884219e8daaf03f466f2ed52f.zip |
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>
Diffstat (limited to 'arch/x86/kernel/visws_quirks.c')
0 files changed, 0 insertions, 0 deletions