+4
-2
arch/alpha/kernel/osf_sys.c
+4
-2
arch/alpha/kernel/osf_sys.c
···
1201
1201
if (!access_ok(VERIFY_WRITE, ur, sizeof(*ur)))
1202
1202
return -EFAULT;
1203
1203
1204
-
err = 0;
1205
-
err |= put_user(status, ustatus);
1204
+
err = put_user(status, ustatus);
1205
+
if (ret < 0)
1206
+
return err ? err : ret;
1207
+
1206
1208
err |= __put_user(r.ru_utime.tv_sec, &ur->ru_utime.tv_sec);
1207
1209
err |= __put_user(r.ru_utime.tv_usec, &ur->ru_utime.tv_usec);
1208
1210
err |= __put_user(r.ru_stime.tv_sec, &ur->ru_stime.tv_sec);
+1
-1
arch/x86/include/asm/uaccess.h
+1
-1
arch/x86/include/asm/uaccess.h
···
703
703
#define unsafe_put_user(x, ptr, err_label) \
704
704
do { \
705
705
int __pu_err; \
706
-
__put_user_size((x), (ptr), sizeof(*(ptr)), __pu_err, -EFAULT); \
706
+
__put_user_size((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)), __pu_err, -EFAULT); \
707
707
if (unlikely(__pu_err)) goto err_label; \
708
708
} while (0)
709
709