mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 22:26:55 +00:00
usb: gadgetfs: Fix ep_read_iter to handle ITER_UBUF
iov_iter for ep_read_iter can be ITER_UBUF with io_uring.
In that case dup_iter() does not have to allocate iov and it can
return NULL. Fix the assumption by checking for iter_is_ubuf()
other wise ep_read_iter can treat this as failure and return -ENOMEM.
Fixes: 1e23db450c
("io_uring: use iter_ubuf for single range imports")
Signed-off-by: Sandeep Dhavale <dhavale@google.com>
Acked-by: Jens Axboe <axboe@kernel.dk>
Link: https://lore.kernel.org/r/20230401060509.3608259-3-dhavale@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
d356b3cdd0
commit
e07fec475c
1 changed files with 1 additions and 1 deletions
|
@ -614,7 +614,7 @@ ep_read_iter(struct kiocb *iocb, struct iov_iter *to)
|
||||||
if (!priv)
|
if (!priv)
|
||||||
goto fail;
|
goto fail;
|
||||||
priv->to_free = dup_iter(&priv->to, to, GFP_KERNEL);
|
priv->to_free = dup_iter(&priv->to, to, GFP_KERNEL);
|
||||||
if (!priv->to_free) {
|
if (!iter_is_ubuf(&priv->to) && !priv->to_free) {
|
||||||
kfree(priv);
|
kfree(priv);
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue