OSDN Git Service

io_uring: Fix __io_uring_register() false success
authorPavel Begunkov <asml.silence@gmail.com>
Sun, 26 May 2019 09:35:47 +0000 (12:35 +0300)
committerJens Axboe <axboe@kernel.dk>
Sun, 26 May 2019 15:25:06 +0000 (09:25 -0600)
If io_copy_iov() fails, it will break the loop and report success,
albeit partially completed operation.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c

index 310f8d1..0fbb486 100644 (file)
@@ -2616,7 +2616,7 @@ static int io_sqe_buffer_register(struct io_ring_ctx *ctx, void __user *arg,
 
                ret = io_copy_iov(ctx, &iov, arg, i);
                if (ret)
-                       break;
+                       goto err;
 
                /*
                 * Don't impose further limits on the size and buffer