io_uring-5.10-2020-12-11
-----BEGIN PGP SIGNATURE----- iQJEBAABCAAuFiEEwPw5LcreJtl1+l5K99NY+ylx4KYFAl/UMOwQHGF4Ym9lQGtl cm5lbC5kawAKCRD301j7KXHgpmI3EAC22QohUftfWAJeks142J9wFKQgYfNZpZHs iJR07NTYUSghp9rpfGVNGY/ZonUoKds0VSbDZpRU8TTjglGf9GguzYE4iOMedtG3 MA9diNOnAAK0gwZrBx1uB882X4pf1qYGChMe9fXXJ4mQsHpG84q00GnJI0cPjkKn PaYRVugr8AxCzG4dHHL0ckQtsEHWaPwe7i5u4UkoOC3IsrVjRri6wYAa98xDuznv fqssoMp2cSOcVHsfypQAVZbg0heR3Zo2OuXE4uw6yjB7w5j8tuLIV9XKtqwiRn2n 57rdnGfY6vSfJb9EPm6fwBRnve2cI2Xbr30x/XWSIx+QcUOFOsBfdblaJikX8cSJ FG5c0AgBeRo1heWC4FRNIFStAubm0RPJAPqNm9p6T0DzO4hC3xTTdkl04B5bA4Ms 4tNWhk2fP8YRKhC0gRcw7zRHAl/qjuMjrUor5L68jxGlmFR7h+uMky0AsS4KZKNZ o1+HFmc/m+3ZBNzL7NoXkJzWFaKzZVf0iuEqJP3Xqy91hCA85pvh7DGAlQpZBppM C0eNeJ59rWvfSuUS9bLlLfoMO3Ab5BsE4IEji7K2lBNZsCXQpXHVv4xJxgKJRja9 t+SuBgYpNOfHrIPSY0LaJh93MNzoP22TP8qF8U5gWQ0Bus/mVKE9S1EXSUAvfHPm IyOfTB9M6g== =wjOp -----END PGP SIGNATURE----- Merge tag 'io_uring-5.10-2020-12-11' of git://git.kernel.dk/linux-block Pull io_uring fixes from Jens Axboe: "Two fixes in here, fixing issues introduced in this merge window" * tag 'io_uring-5.10-2020-12-11' of git://git.kernel.dk/linux-block: io_uring: fix file leak on error path of io ctx creation io_uring: fix mis-seting personality's creds
This commit is contained in:
Коммит
31d00f6eb1
|
@ -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);
|
||||
|
@ -9183,6 +9183,7 @@ static int io_uring_get_fd(struct io_ring_ctx *ctx)
|
|||
{
|
||||
struct file *file;
|
||||
int ret;
|
||||
int fd;
|
||||
|
||||
#if defined(CONFIG_UNIX)
|
||||
ret = sock_create_kern(&init_net, PF_UNIX, SOCK_RAW, IPPROTO_IP,
|
||||
|
@ -9194,12 +9195,12 @@ static int io_uring_get_fd(struct io_ring_ctx *ctx)
|
|||
ret = get_unused_fd_flags(O_RDWR | O_CLOEXEC);
|
||||
if (ret < 0)
|
||||
goto err;
|
||||
fd = ret;
|
||||
|
||||
file = anon_inode_getfile("[io_uring]", &io_uring_fops, ctx,
|
||||
O_RDWR | O_CLOEXEC);
|
||||
if (IS_ERR(file)) {
|
||||
err_fd:
|
||||
put_unused_fd(ret);
|
||||
put_unused_fd(fd);
|
||||
ret = PTR_ERR(file);
|
||||
goto err;
|
||||
}
|
||||
|
@ -9207,12 +9208,14 @@ err_fd:
|
|||
#if defined(CONFIG_UNIX)
|
||||
ctx->ring_sock->file = file;
|
||||
#endif
|
||||
if (unlikely(io_uring_add_task_file(ctx, file))) {
|
||||
file = ERR_PTR(-ENOMEM);
|
||||
goto err_fd;
|
||||
ret = io_uring_add_task_file(ctx, file);
|
||||
if (ret) {
|
||||
fput(file);
|
||||
put_unused_fd(fd);
|
||||
goto err;
|
||||
}
|
||||
fd_install(ret, file);
|
||||
return ret;
|
||||
fd_install(fd, file);
|
||||
return fd;
|
||||
err:
|
||||
#if defined(CONFIG_UNIX)
|
||||
sock_release(ctx->ring_sock);
|
||||
|
|
Загрузка…
Ссылка в новой задаче