• M
    Fix order of arguments to compat_put_time[spec|val] · ed6fe9d6
    Mikulas Patocka 提交于
    Commit 644595f8 ("compat: Handle COMPAT_USE_64BIT_TIME in
    net/socket.c") introduced a bug where the helper functions to take
    either a 64-bit or compat time[spec|val] got the arguments in the wrong
    order, passing the kernel stack pointer off as a user pointer (and vice
    versa).
    
    Because of the user address range check, that in turn then causes an
    EFAULT due to the user pointer range checking failing for the kernel
    address.  Incorrectly resuling in a failed system call for 32-bit
    processes with a 64-bit kernel.
    
    On odder architectures like HP-PA (with separate user/kernel address
    spaces), it can be used read kernel memory.
    Signed-off-by: NMikulas Patocka <mpatocka@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    ed6fe9d6
socket.c 81.4 KB