Message ID | 20211231172138.7993-1-hbh25y@gmail.com |
---|---|
Headers | show |
Series | usb: gadget: use after free in dev_config | expand |
On Sat, Jan 01, 2022 at 01:21:37AM +0800, Hangyu Hua wrote: > dev->buf does not need to be released if it already exists before > executing dev_config. > > Signed-off-by: Hangyu Hua <hbh25y@gmail.com> > --- Acked-by: Alan Stern <stern@rowland.harvard.edu> > drivers/usb/gadget/legacy/inode.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/usb/gadget/legacy/inode.c b/drivers/usb/gadget/legacy/inode.c > index 3b58f4fc0a80..eaad03c0252f 100644 > --- a/drivers/usb/gadget/legacy/inode.c > +++ b/drivers/usb/gadget/legacy/inode.c > @@ -1826,8 +1826,9 @@ dev_config (struct file *fd, const char __user *buf, size_t len, loff_t *ptr) > spin_lock_irq (&dev->lock); > value = -EINVAL; > if (dev->buf) { > + spin_unlock_irq(&dev->lock); > kfree(kbuf); > - goto fail; > + return value; > } > dev->buf = kbuf; > > -- > 2.25.1 >