Skip to content

Commit 33cfe07

Browse files
outman119gregkh
authored andcommitted
usb: misc: usbio: Fix URB memory leak on submit failure
When usb_submit_urb() fails in usbio_probe(), the previously allocated URB is never freed, causing a memory leak. Fix this by jumping to err_free_urb label to properly release the URB on the error path. Fixes: 121a0f8 ("usb: misc: Add Intel USBIO bridge driver") Cc: stable <stable@kernel.org> Signed-off-by: Felix Gu <ustc.gu@gmail.com> Reviewed-by: Oliver Neukum <oneukum@suse.com> Reviewed-by: Hans de Goede <johannes.goede@oss.qualcomm.com> Link: https://patch.msgid.link/20260331-usbio-v2-1-d8c48dad9463@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 8b7a42e commit 33cfe07

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

drivers/usb/misc/usbio.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -614,8 +614,10 @@ static int usbio_probe(struct usb_interface *intf, const struct usb_device_id *i
614614
usb_fill_bulk_urb(usbio->urb, udev, usbio->rx_pipe, usbio->rxbuf,
615615
usbio->rxbuf_len, usbio_bulk_recv, usbio);
616616
ret = usb_submit_urb(usbio->urb, GFP_KERNEL);
617-
if (ret)
618-
return dev_err_probe(dev, ret, "Submitting usb urb\n");
617+
if (ret) {
618+
dev_err_probe(dev, ret, "Submitting usb urb\n");
619+
goto err_free_urb;
620+
}
619621

620622
mutex_lock(&usbio->ctrl_mutex);
621623

@@ -663,6 +665,7 @@ static int usbio_probe(struct usb_interface *intf, const struct usb_device_id *i
663665
err_unlock:
664666
mutex_unlock(&usbio->ctrl_mutex);
665667
usb_kill_urb(usbio->urb);
668+
err_free_urb:
666669
usb_free_urb(usbio->urb);
667670

668671
return ret;

0 commit comments

Comments
 (0)