mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 21:07:02 +09:00
USB: usbtmc: fix probe error path
commit2e47c53503upstream. Make sure to initialise the return value to avoid having allocation failures going unnoticed when allocating interrupt-endpoint resources. This prevents use-after-free or worse when the device is later unbound. Fixes:dbf3e7f654("Implement an ioctl to support the USMTMC-USB488 READ_STATUS_BYTE operation.") Cc: Dave Penkler <dpenkler@gmail.com> Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
73c4e2ede5
commit
5e50afb227
@@ -1475,8 +1475,10 @@ static int usbtmc_probe(struct usb_interface *intf,
|
||||
if (data->iin_ep_present) {
|
||||
/* allocate int urb */
|
||||
data->iin_urb = usb_alloc_urb(0, GFP_KERNEL);
|
||||
if (!data->iin_urb)
|
||||
if (!data->iin_urb) {
|
||||
retcode = -ENOMEM;
|
||||
goto error_register;
|
||||
}
|
||||
|
||||
/* will reference data in int urb */
|
||||
kref_get(&data->kref);
|
||||
@@ -1484,8 +1486,10 @@ static int usbtmc_probe(struct usb_interface *intf,
|
||||
/* allocate buffer for interrupt in */
|
||||
data->iin_buffer = kmalloc(data->iin_wMaxPacketSize,
|
||||
GFP_KERNEL);
|
||||
if (!data->iin_buffer)
|
||||
if (!data->iin_buffer) {
|
||||
retcode = -ENOMEM;
|
||||
goto error_register;
|
||||
}
|
||||
|
||||
/* fill interrupt urb */
|
||||
usb_fill_int_urb(data->iin_urb, data->usb_dev,
|
||||
|
||||
Reference in New Issue
Block a user