• Will Drewry's avatar
    signal, x86: add SIGSYS info and make it synchronous. · a0727e8c
    Will Drewry authored
    This change enables SIGSYS, defines _sigfields._sigsys, and adds
    x86 (compat) arch support.  _sigsys defines fields which allow
    a signal handler to receive the triggering system call number,
    the relevant AUDIT_ARCH_* value for that number, and the address
    of the callsite.
    
    SIGSYS is added to the SYNCHRONOUS_MASK because it is desirable for it
    to have setup_frame() called for it. The goal is to ensure that
    ucontext_t reflects the machine state from the time-of-syscall and not
    from another signal handler.
    
    The first consumer of SIGSYS would be seccomp filter.  In particular,
    a filter program could specify a new return value, SECCOMP_RET_TRAP,
    which would result in the system call being denied and the calling
    thread signaled.  This also means that implementing arch-specific
    support can be dependent upon HAVE_ARCH_SECCOMP_FILTER.
    Suggested-by: default avatarH. Peter Anvin <hpa@zytor.com>
    Signed-off-by: default avatarWill Drewry <wad@chromium.org>
    Acked-by: default avatarSerge Hallyn <serge.hallyn@canonical.com>
    Reviewed-by: default avatarH. Peter Anvin <hpa@zytor.com>
    Acked-by: default avatarEric Paris <eparis@redhat.com>
    
    v18: - added acked by, rebase
    v17: - rebase and reviewed-by addition
    v14: - rebase/nochanges
    v13: - rebase on to 88ebdda6
    v12: - reworded changelog (oleg@redhat.com)
    v11: - fix dropped words in the change description
         - added fallback copy_siginfo support.
         - added __ARCH_SIGSYS define to allow stepped arch support.
    v10: - first version based on suggestion
    Signed-off-by: default avatarJames Morris <james.l.morris@oracle.com>
    a0727e8c
signal.c 85.3 KB