Al Viro 137d01df51 Fix missing sanity check in /dev/sg
What happens is that a write to /dev/sg is given a request with non-zero
->iovec_count combined with zero ->dxfer_len.  Or with ->dxferp pointing
to an array full of empty iovecs.

Having write permission to /dev/sg shouldn't be equivalent to the
ability to trigger BUG_ON() while holding spinlocks...

Found by Dmitry Vyukov and syzkaller.

[ The BUG_ON() got changed to a WARN_ON_ONCE(), but this fixes the
  underlying issue.  - Linus ]

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Reported-by: Dmitry Vyukov <dvyukov@google.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Cc: stable@vger.kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2017-02-19 09:54:31 -08:00
..
2016-12-14 10:49:33 -08:00
2016-12-14 10:49:33 -08:00
2016-11-08 17:29:56 -05:00
2017-02-08 10:51:24 -08:00
2016-12-14 10:49:33 -08:00
2016-07-27 14:48:37 -07:00
2016-12-14 10:49:33 -08:00
2017-02-11 09:01:03 -08:00
2016-12-25 17:21:22 +01:00
2015-04-17 10:13:56 -07:00
2015-11-25 22:08:55 -05:00
2014-07-17 22:07:37 +02:00
2016-05-10 22:01:07 -04:00
2015-11-09 17:11:57 -08:00
2014-11-24 16:13:16 +01:00
2015-11-09 16:32:14 -08:00
2016-10-07 09:28:53 -07:00
2016-12-14 10:49:33 -08:00
2016-02-25 21:10:53 -05:00
2016-11-08 17:29:46 -05:00
2016-01-27 20:36:10 +08:00
2016-01-27 20:36:10 +08:00
2014-07-17 22:07:35 +02:00
2016-12-14 10:49:33 -08:00
2016-02-23 21:27:02 -05:00
2016-11-28 15:51:31 -05:00
2016-12-25 17:21:22 +01:00
2016-10-07 09:28:53 -07:00
2016-11-14 13:16:42 -07:00
2016-10-18 19:49:11 -06:00
2017-02-19 09:54:31 -08:00
2016-02-23 21:27:02 -05:00
2014-07-17 22:07:39 +02:00
2014-11-12 11:15:57 +01:00
2015-11-18 11:59:09 -05:00
2016-02-23 21:27:02 -05:00
2014-11-20 09:11:15 +01:00