Skip to content
  • Dominik Brodowski's avatar
    syscalls/x86: Extend register clearing on syscall entry to lower registers · 6dc936f1
    Dominik Brodowski authored and Ingo Molnar's avatar Ingo Molnar committed
    
    
    To reduce the chance that random user space content leaks down the call
    chain in registers, also clear lower registers on syscall entry:
    
    For 64-bit syscalls, extend the register clearing in PUSH_AND_CLEAR_REGS
    to %dx and %cx. This should not hurt at all, also on the other callers
    of that macro. We do not need to clear %rdi and %rsi for syscall entry,
    as those registers are used to pass the parameters to do_syscall_64().
    
    For the 32-bit compat syscalls, do_int80_syscall_32() and
    do_fast_syscall_32() each only take one parameter. Therefore, extend the
    register clearing to %dx, %cx, and %si in entry_SYSCALL_compat and
    entry_INT80_compat.
    
    Signed-off-by: default avatarDominik Brodowski <linux@dominikbrodowski.net>
    Acked-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/20180405095307.3730-8-linux@dominikbrodowski.net
    
    
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    6dc936f1