• Roland McGrath's avatar
    x86: auditsyscall: fix fastpath return value after reschedule · 03275591
    Roland McGrath authored
    In the CONFIG_AUDITSYSCALL fast-path for x86 64-bit system calls,
    we can pass a bad return value and/or error indication for the
    system call to audit_syscall_exit().  This happens when
    TIF_NEED_RESCHED was set as the system call returned, so we went
    out to schedule() and came back to the exit-audit fast-path.  The
    fix is to reload the user return value register from the pt_regs
    before using it for audit_syscall_exit().
    
    Both the 32-bit kernel's fast path and the 64-bit kernel's 32-bit
    system call fast paths work slightly differently, so that they
    always leave the fast path entirely to reschedule and don't return
    there, so they don't have the analogous bugs.
    Reported-by: default avatarAlexander Viro <aviro@redhat.com>
    Signed-off-by: default avatarRoland McGrath <roland@redhat.com>
    03275591
entry_64.S 37.6 KB