• Mikulas Patocka's avatar
    Fix order of arguments to compat_put_time[spec|val] · ed6fe9d6
    Mikulas Patocka authored
    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: default avatarMikulas Patocka <mpatocka@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    ed6fe9d6
socket.c 81.4 KB