• Al Viro's avatar
    xtensa: fix {get,put}_user() for 64bit values · 6595d144
    Al Viro authored
    First of all, on short copies __copy_{to,from}_user() return the amount
    of bytes left uncopied, *not* -EFAULT.  get_user() and put_user() are
    expected to return -EFAULT on failure.
    
    Another problem is get_user(v32, (__u64 __user *)p); that should
    fetch 64bit value and the assign it to v32, truncating it in process.
    Current code, OTOH, reads 8 bytes of data and stores them at the
    address of v32, stomping on the 4 bytes that follow v32 itself.
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
    6595d144
uaccess.h 8.93 KB