• Steven Rostedt (Red Hat)'s avatar
    ptrace: Remove maxargs from task_current_syscall() · 631b7aba
    Steven Rostedt (Red Hat) authored
    task_current_syscall() has a single user that passes in 6 for maxargs, which
    is the maximum arguments that can be used to get system calls from
    syscall_get_arguments(). Instead of passing in a number of arguments to
    grab, just get 6 arguments. The args argument even specifies that it's an
    array of 6 items.
    
    This will also allow changing syscall_get_arguments() to not get a variable
    number of arguments, but always grab 6.
    
    Linus also suggested not passing in a bunch of arguments to
    task_current_syscall() but to instead pass in a pointer to a structure, and
    just fill the structure. struct seccomp_data has almost all the parameters
    that is needed except for the stack pointer (sp). As seccomp_data is part of
    uapi, and I'm afraid to change it, a new structure was created
    "syscall_info", which includes seccomp_data and adds the "sp" field.
    
    Link: http://lkml.kernel.org/r/20161107213233.466776454@goodmis.org
    
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Alexey Dobriyan <adobriyan@gmail.com>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: linux-fsdevel@vger.kernel.org
    Reviewed-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
    631b7aba
base.c 87.7 KB