Jens Axboe 0b416c3e13 io_uring: fix sporadic -EFAULT from IORING_OP_RECVMSG
If we have to punt the recvmsg to async context, we copy all the
context.  But since the iovec used can be either on-stack (if small) or
dynamically allocated, if it's on-stack, then we need to ensure we reset
the iov pointer. If we don't, then we're reusing old stack data, and
that can lead to -EFAULTs if things get overwritten.

Ensure we retain the right pointers for the iov, and free it as well if
we end up having to go beyond UIO_FASTIOV number of vectors.

Fixes: 03b1230ca12a ("io_uring: ensure async punted sendmsg/recvmsg requests copy data")
Reported-by: 李通洲 <carter.li@eoitek.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-12-15 22:12:47 -07:00
..
2019-09-27 15:10:34 -07:00
2019-09-19 09:42:37 -07:00
2019-12-09 10:36:44 -08:00
2019-07-12 17:37:53 -07:00
2019-12-11 12:25:32 -08:00
2019-11-11 09:21:59 -05:00
\n
2019-11-30 11:16:07 -08:00
2019-12-05 13:20:11 -08:00
2019-09-19 09:42:37 -07:00
2019-09-19 09:42:37 -07:00
2019-11-18 11:04:32 +01:00
2019-12-04 19:44:11 -08:00
2019-09-19 09:42:37 -07:00
2019-12-09 10:36:44 -08:00
2019-12-07 17:05:33 -08:00
2019-12-01 14:00:59 -08:00
2019-12-02 14:46:22 -08:00
2019-11-30 10:44:49 -08:00
2019-08-07 21:51:47 -04:00
2019-10-25 14:08:24 -04:00
2019-12-02 14:46:22 -08:00
2019-10-14 15:04:01 -07:00
2019-09-27 17:00:27 -07:00