• Eric Biggers's avatar
    x86/fpu: Introduce validate_xstate_header() · e63e5d5c
    Eric Biggers authored
    Move validation of user-supplied xstate_header into a helper function,
    in preparation of calling it from both the ptrace and sigreturn syscall
    paths.
    
    The new function also considers it to be an error if *any* reserved bits
    are set, whereas before we were just clearing most of them silently.
    
    This should reduce the chance of bugs that fail to correctly validate
    user-supplied XSAVE areas.  It also will expose any broken userspace
    programs that set the other reserved bits; this is desirable because
    such programs will lose compatibility with future CPUs and kernels if
    those bits are ever used for anything.  (There shouldn't be any such
    programs, and in fact in the case where the compacted format is in use
    we were already validating xfeatures.  But you never know...)
    Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: Eric Biggers <ebiggers3@gmail.com>
    Cc: Fenghua Yu <fenghua.yu@intel.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Kevin Hao <haokexin@gmail.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Michael Halcrow <mhalcrow@google.com>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Wanpeng Li <wanpeng.li@hotmail.com>
    Cc: Yu-cheng Yu <yu-cheng.yu@intel.com>
    Cc: kernel-hardening@lists.openwall.com
    Link: http://lkml.kernel.org/r/20170924105913.9157-2-mingo@kernel.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    e63e5d5c
xstate.h 1.8 KB