Patch "s390/uaccess: get_user() should zero on failure (again)" has been added to the 3.18-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
s390/uaccess: get_user() should zero on failure (again)
to the 3.18-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
s390-uaccess-get_user-should-zero-on-failure-again.patch
and it can be found in the queue-3.18 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
d09c5373e8e4eaaa09233552cbf75dc4c4f21203Mon Sep 17 00:00:00 2001
From: Heiko Carstens <[email protected]>
Date: Mon, 27 Mar 2017 09:48:04 +0200
Subject: s390/uaccess: get_user() should zero on failure (again)
From: Heiko Carstens <[email protected]>
commit d09c5373e8e4eaaa09233552cbf75dc4c4f21203 upstream.
Commit fd2d2b191fe7 ("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.
--- arch/s390/include/asm/uaccess.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/s390/include/asm/uaccess.h +1 -1
@@ -148,7 +148,7 @@ unsigned long __must_check __copy_to_use" jg 2b\n" \".popsection\n" \ EX_TABLE(0b,3b) EX_TABLE(1b,3b) \ - : "=d" (__rc), "=Q" (*(to)) \ + : "=d" (__rc), "+Q" (*(to)) \: " d" (size), " Q " (*(from)), \ " d" (__reg0), " K " (-EFAULT) \ : " cc"); \
Patches currently in stable-queue which might be from [email protected] are
queue-3.18/s390-uaccess-get_user-should-zero-on-failure-again.patch queue-3.18/s390-decompressor-fix-initrd-corruption-caused-by-bss-clear.patch