mirror of https://github.com/torvalds/linux.git
usb: yurex: fix race in probe
The bbu member of the descriptor must be set to the value standing for uninitialized values before the URB whose completion handler sets bbu is submitted. Otherwise there is a window during which probing can overwrite already retrieved data. Cc: stable <stable@kernel.org> Signed-off-by: Oliver Neukum <oneukum@suse.com> Link: https://patch.msgid.link/20260209143720.1507500-1-oneukum@suse.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
0d6c8144ca
commit
7a875c0989
|
|
@ -272,6 +272,7 @@ static int yurex_probe(struct usb_interface *interface, const struct usb_device_
|
|||
dev->int_buffer, YUREX_BUF_SIZE, yurex_interrupt,
|
||||
dev, 1);
|
||||
dev->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
|
||||
dev->bbu = -1;
|
||||
if (usb_submit_urb(dev->urb, GFP_KERNEL)) {
|
||||
retval = -EIO;
|
||||
dev_err(&interface->dev, "Could not submitting URB\n");
|
||||
|
|
@ -280,7 +281,6 @@ static int yurex_probe(struct usb_interface *interface, const struct usb_device_
|
|||
|
||||
/* save our data pointer in this interface device */
|
||||
usb_set_intfdata(interface, dev);
|
||||
dev->bbu = -1;
|
||||
|
||||
/* we can register the device now, as it is ready */
|
||||
retval = usb_register_dev(interface, &yurex_class);
|
||||
|
|
|
|||
Loading…
Reference in New Issue