diff options
author | Arnd Bergmann <arnd@arndb.de> | 2017-11-08 16:02:13 +0100 |
---|---|---|
committer | Matt Turner <mattst88@gmail.com> | 2018-01-20 16:58:39 -0800 |
commit | 645a05a72c366529bf7e566b32ec806744883597 (patch) | |
tree | a86ffb01112ca5c9944b2d8cacf1dbf34b2d4de5 /arch/alpha | |
parent | 16dc17ee61ec3c16643fea675715cb3845d94735 (diff) | |
download | linux-645a05a72c366529bf7e566b32ec806744883597.tar.gz linux-645a05a72c366529bf7e566b32ec806744883597.tar.bz2 linux-645a05a72c366529bf7e566b32ec806744883597.zip |
alpha: osf_sys.c: fix put_tv32 regression
There was a typo in the new version of put_tv32() that caused an unguarded
access of a user space pointer, and failed to return the correct result in
gettimeofday(), wait4(), usleep_thread() and old_adjtimex().
This fixes it to give the correct behavior again.
Cc: stable@vger.kernel.org
Fixes: 1cc6c4635e9f ("osf_sys.c: switch handling of timeval32/itimerval32 to copy_{to,from}_user()")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Matt Turner <mattst88@gmail.com>
Diffstat (limited to 'arch/alpha')
-rw-r--r-- | arch/alpha/kernel/osf_sys.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c index ce3a675c0c4b..75a5c35a2067 100644 --- a/arch/alpha/kernel/osf_sys.c +++ b/arch/alpha/kernel/osf_sys.c @@ -964,8 +964,8 @@ static inline long put_tv32(struct timeval32 __user *o, struct timeval *i) { return copy_to_user(o, &(struct timeval32){ - .tv_sec = o->tv_sec, - .tv_usec = o->tv_usec}, + .tv_sec = i->tv_sec, + .tv_usec = i->tv_usec}, sizeof(struct timeval32)); } |