Skip to content

Commit d09c537

Browse files
heicarstMartin Schwidefsky
authored andcommitted
s390/uaccess: get_user() should zero on failure (again)
Commit fd2d2b1 ("s390: get_user() should zero on failure") intended to fix s390's get_user() implementation which did not zero the target operand if the read from user space faulted. Unfortunately the patch has no effect: the corresponding inline assembly specifies that the operand is only written to ("=") and the previous value is discarded. Therefore the compiler is free to and actually does omit the zero initialization. To fix this simply change the contraint modifier to "+", so the compiler cannot omit the initialization anymore. Fixes: c9ca784 ("s390/uaccess: provide inline variants of get_user/put_user") Fixes: fd2d2b1 ("s390: get_user() should zero on failure") Cc: [email protected] Cc: Al Viro <[email protected]> Signed-off-by: Heiko Carstens <[email protected]> Signed-off-by: Martin Schwidefsky <[email protected]>
1 parent ca681ec commit d09c537

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

arch/s390/include/asm/uaccess.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ unsigned long __must_check __copy_to_user(void __user *to, const void *from,
147147
" jg 2b\n" \
148148
".popsection\n" \
149149
EX_TABLE(0b,3b) EX_TABLE(1b,3b) \
150-
: "=d" (__rc), "=Q" (*(to)) \
150+
: "=d" (__rc), "+Q" (*(to)) \
151151
: "d" (size), "Q" (*(from)), \
152152
"d" (__reg0), "K" (-EFAULT) \
153153
: "cc"); \

0 commit comments

Comments
 (0)