Vineet Gupta
59a2d6b2a6
ARC: uaccess: get_user to zero out dest in cause of fault
commit 05d9d0b96e upstream.
Al reported potential issue with ARC get_user() as it wasn't clearing
out destination pointer in case of fault due to bad address etc.
Verified using following
| {
| u32 bogus1 = 0xdeadbeef;
| u64 bogus2 = 0xdead;
| int rc1, rc2;
|
| pr_info("Orig values %x %llx\n", bogus1, bogus2);
| rc1 = get_user(bogus1, (u32 __user *)0x40000000);
| rc2 = get_user(bogus2, (u64 __user *)0x50000000);
| pr_info("access %d %d, new values %x %llx\n",
| rc1, rc2, bogus1, bogus2);
| }
| [ARCLinux]# insmod /mnt/kernel-module/qtn.ko
| Orig values deadbeef dead
| access -14 -14, new values 0 0
Reported-by: Al Viro <viro@ZenIV.linux.org.uk>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-snps-arc@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-24 10:07:44 +02:00
..
2016-09-07 08:32:42 +02:00
2013-01-28 12:34:21 +05:30
2015-09-23 09:54:28 +02:00
2015-06-25 06:00:17 +05:30
2016-04-12 09:08:56 -07:00
2014-10-13 14:46:18 +05:30
2015-12-21 12:10:40 +05:30
2015-10-28 19:50:29 +05:30
2013-02-11 20:00:34 +05:30
2013-02-15 23:15:56 +05:30
2015-08-20 19:05:49 +05:30
2014-10-13 14:46:20 +05:30
2015-06-22 14:06:56 +05:30
2013-02-15 23:16:04 +05:30
2015-07-01 17:47:51 -07:00
2013-02-15 23:15:54 +05:30
2015-06-22 14:06:55 +05:30
2015-06-22 14:06:55 +05:30
2015-10-17 17:48:22 +05:30
2016-09-07 08:32:42 +02:00
2013-02-11 20:00:34 +05:30
2015-08-20 18:53:15 +05:30
2015-10-28 19:49:04 +05:30
2015-10-17 17:48:21 +05:30
2016-05-11 11:21:20 +02:00
2015-10-28 16:13:39 +05:30
2016-03-03 15:07:28 -08:00
2016-09-07 08:32:42 +02:00
2015-06-22 14:06:55 +05:30
2015-10-04 16:31:13 +01:00
2013-02-11 20:00:34 +05:30
2014-10-13 14:46:20 +05:30
2015-10-28 19:49:04 +05:30
2013-06-26 15:30:50 +05:30
2014-03-26 14:31:28 +05:30
2015-12-17 12:56:56 +05:30
2015-10-28 16:13:41 +05:30
2013-11-06 10:41:45 +05:30
2015-10-29 18:41:30 +05:30
2013-02-15 23:16:03 +05:30
2013-02-15 23:16:02 +05:30
2015-10-29 18:41:30 +05:30
2015-08-27 14:59:07 +05:30
2015-10-29 18:41:30 +05:30
2016-09-24 10:07:37 +02:00
2015-11-14 13:12:30 +05:30
2015-08-05 11:48:21 +05:30
2014-04-30 00:59:13 -05:00
2013-02-11 20:00:31 +05:30
2015-02-02 17:08:37 +05:30
2015-10-17 17:48:25 +05:30
2013-05-09 22:00:57 +05:30
2015-12-17 12:56:43 +05:30
2015-08-04 09:26:33 +05:30
2015-08-07 13:56:16 +05:30
2015-02-27 10:15:00 +05:30
2014-10-13 14:46:20 +05:30
2013-02-11 20:00:38 +05:30
2013-06-22 19:23:26 +05:30
2014-10-13 14:46:20 +05:30
2015-06-22 14:06:55 +05:30
2013-02-11 20:00:39 +05:30
2013-06-22 13:46:42 +05:30
2013-06-22 13:46:42 +05:30
2015-10-17 17:48:21 +05:30
2016-09-24 10:07:44 +02:00
2014-10-13 14:46:15 +05:30
2015-12-17 11:10:23 +05:30