io_uring: fix mis-seting personality's creds
authorPavel Begunkov <asml.silence@gmail.com>
Sun, 6 Dec 2020 22:22:46 +0000 (22:22 +0000)
committerJens Axboe <axboe@kernel.dk>
Mon, 7 Dec 2020 15:43:44 +0000 (08:43 -0700)
After io_identity_cow() copies an work.identity it wants to copy creds
to the new just allocated id, not the old one. Otherwise it's
akin to req->work.identity->creds = req->work.identity->creds.

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

index a2a7c65..908817c 100644 (file)
@@ -1284,7 +1284,7 @@ static bool io_identity_cow(struct io_kiocb *req)
         */
        io_init_identity(id);
        if (creds)
-               req->work.identity->creds = creds;
+               id->creds = creds;
 
        /* add one for this request */
        refcount_inc(&id->count);