• Jiri Olsa's avatar
    s390/syscalls: Fix out of bounds arguments access · 7aa66fd8
    Jiri Olsa authored
    commit c46fc042 upstream.
    
    Zorro reported following crash while having enabled
    syscall tracing (CONFIG_FTRACE_SYSCALLS):
    
      Unable to handle kernel pointer dereference at virtual ...
      Oops: 0011 [#1] SMP DEBUG_PAGEALLOC
    
      SNIP
    
      Call Trace:
      ([<000000000024d79c>] ftrace_syscall_enter+0xec/0x1d8)
       [<00000000001099c6>] do_syscall_trace_enter+0x236/0x2f8
       [<0000000000730f1c>] sysc_tracesys+0x1a/0x32
       [<000003fffcf946a2>] 0x3fffcf946a2
      INFO: lockdep is turned off.
      Last Breaking-Event-Address:
       [<000000000022dd44>] rb_event_data+0x34/0x40
      ---[ end trace 8c795f86b1b3f7b9 ]---
    
    The crash happens in syscall_get_arguments function for
    syscalls with zero arguments, that will try to access
    first argument (args[0]) in event entry, but it's not
    allocated.
    
    Bail out of there are no arguments.
    Reported-by: default avatarZorro Lang <zlang@redhat.com>
    Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    7aa66fd8
syscall.h 2.59 KB