Patch "asm-generic: make get_user() clear the destination on errors" has been added to the 4.7-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
asm-generic: make get_user() clear the destination on errors
to the 4.7-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:
asm-generic-make-get_user-clear-the-destination-on-errors.patch
and it can be found in the queue-4.7 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
9ad18b75c2f6e4a78ce204e79f37781f8815c0faMon Sep 17 00:00:00 2001
From: Al Viro <[email protected]>
Date: Wed, 17 Aug 2016 23:19:01 -0400
Subject: asm-generic: make get_user() clear the destination on errors
From: Al Viro <[email protected]>
commit 9ad18b75c2f6e4a78ce204e79f37781f8815c0fa upstream.
both for access_ok() failures and for faults halfway through
--- include/asm-generic/uaccess.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
include/asm-generic/uaccess.h +7 -3
@@ -230,14 +230,18 @@ extern int __put_user_bad(void) __attribmight_fault (); \access_ok (VERIFY_READ , __p,sizeof (*ptr)) ? \ __get_user((x), (__typeof__(*(ptr)) *)__p) : \ - -EFAULT ; \ + ((x) = (__typeof__ (*(ptr )))0 ,-EFAULT ); \ })#ifndef __get_user_fnstatic inline int __get_user_fn (size_t size,const void __user *ptr,void *x) { - size =__copy_from_user (x, ptr, size); -return size ? -EFAULT : size; +size_t n =__copy_from_user (x, ptr, size); +if (unlikely (n)) { +memset (x + (size - n),0 , n); +return -EFAULT ; + } +return 0 ; }#define __get_user_fn (sz, u, k) __get_user_fn(sz, u, k)
Patches currently in stable-queue which might be from [email protected] are
queue-4.7/nios2-copy_from_user-should-zero-the-tail-of-destination.patch queue-4.7/m32r-fix-__get_user.patch queue-4.7/microblaze-fix-copy_from_user.patch queue-4.7/cris-buggered-copy_from_user-copy_to_user-clear_user.patch queue-4.7/asm-generic-make-copy_from_user-zero-the-destination-properly.patch queue-4.7/metag-copy_from_user-should-zero-the-destination-on-access_ok-failure.patch queue-4.7/score-fix-__get_user-get_user.patch queue-4.7/parisc-fix-copy_from_user.patch queue-4.7/mips-copy_from_user-must-zero-the-destination-on-access_ok-failure.patch queue-4.7/alpha-fix-copy_from_user.patch queue-4.7/mn10300-failing-__get_user-and-get_user-should-zero.patch queue-4.7/openrisc-fix-copy_from_user.patch queue-4.7/avr32-fix-copy_from_user.patch queue-4.7/score-fix-copy_from_user-and-friends.patch queue-4.7/sh64-failing-__get_user-should-zero.patch queue-4.7/arc-uaccess-get_user-to-zero-out-dest-in-cause-of-fault.patch queue-4.7/hexagon-fix-strncpy_from_user-error-return.patch queue-4.7/af_unix-split-u-readlock-into-two-iolock-and-bindlock.patch queue-4.7/frv-fix-clear_user.patch queue-4.7/fix-minor-infoleak-in-get_user_ex.patch queue-4.7/asm-generic-make-get_user-clear-the-destination-on-errors.patch queue-4.7/mn10300-copy_from_user-should-zero-on-access_ok-failure.patch queue-4.7/s390-get_user-should-zero-on-failure.patch queue-4.7/microblaze-fix-__get_user.patch queue-4.7/blackfin-fix-copy_from_user.patch queue-4.7/fix-iov_iter_fault_in_readable.patch queue-4.7/nios2-fix-__get_user.patch queue-4.7/sh-fix-copy_from_user.patch