]>
Commit | Line | Data |
---|---|---|
13dcf987 GKH |
1 | From a8c39544a6eb2093c04afd5005b6192bd0e880c6 Mon Sep 17 00:00:00 2001 |
2 | From: Al Viro <viro@zeniv.linux.org.uk> | |
3 | Date: Sun, 14 May 2017 21:47:25 -0400 | |
4 | Subject: osf_wait4(): fix infoleak | |
5 | ||
6 | From: Al Viro <viro@zeniv.linux.org.uk> | |
7 | ||
8 | commit a8c39544a6eb2093c04afd5005b6192bd0e880c6 upstream. | |
9 | ||
10 | failing sys_wait4() won't fill struct rusage... | |
11 | ||
12 | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> | |
13 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |
14 | ||
15 | --- | |
16 | arch/alpha/kernel/osf_sys.c | 6 ++++-- | |
17 | 1 file changed, 4 insertions(+), 2 deletions(-) | |
18 | ||
19 | --- a/arch/alpha/kernel/osf_sys.c | |
20 | +++ b/arch/alpha/kernel/osf_sys.c | |
21 | @@ -1188,8 +1188,10 @@ SYSCALL_DEFINE4(osf_wait4, pid_t, pid, i | |
22 | if (!access_ok(VERIFY_WRITE, ur, sizeof(*ur))) | |
23 | return -EFAULT; | |
24 | ||
25 | - err = 0; | |
26 | - err |= put_user(status, ustatus); | |
27 | + err = put_user(status, ustatus); | |
28 | + if (ret < 0) | |
29 | + return err ? err : ret; | |
30 | + | |
31 | err |= __put_user(r.ru_utime.tv_sec, &ur->ru_utime.tv_sec); | |
32 | err |= __put_user(r.ru_utime.tv_usec, &ur->ru_utime.tv_usec); | |
33 | err |= __put_user(r.ru_stime.tv_sec, &ur->ru_stime.tv_sec); |