lkml.org 
[lkml]   [2017]   [Oct]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.2 34/74] s390/syscalls: Fix out of bounds arguments access
    3.2.94-rc1 review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Jiri Olsa <jolsa@kernel.org>

    commit c46fc0424ced3fb71208e72bd597d91b9169a781 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: Zorro Lang <zlang@redhat.com>
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    arch/s390/include/asm/syscall.h | 6 ++++++
    1 file changed, 6 insertions(+)

    --- a/arch/s390/include/asm/syscall.h
    +++ b/arch/s390/include/asm/syscall.h
    @@ -62,6 +62,12 @@ static inline void syscall_get_arguments
    {
    unsigned long mask = -1UL;

    + /*
    + * No arguments for this syscall, there's nothing to do.
    + */
    + if (!n)
    + return;
    +
    BUG_ON(i + n > 6);
    #ifdef CONFIG_COMPAT
    if (test_tsk_thread_flag(task, TIF_31BIT))
    \
     
     \ /
      Last update: 2017-10-09 14:59    [W:4.891 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site