diff options
| author | Oliver Neukum <oneukum@suse.de> | 2014-08-01 09:55:20 +0200 | 
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-08-01 16:01:46 -0700 | 
| commit | d310d05f1225d1f6f2bf505255fdf593bfbb3051 (patch) | |
| tree | 561d579967a741e32fec5c65d7b1140c9a785903 | |
| parent | 43508be512661c905d0320ee73e0b65ef36d2459 (diff) | |
USB: devio: fix issue with log flooding
usbfs allows user space to pass down an URB which sets URB_SHORT_NOT_OK
for output URBs. That causes usbcore to log messages without limit
for a nonsensical disallowed combination. The fix is to silently drop
the attribute in usbfs.
The problem is reported to exist since 3.14
https://www.virtualbox.org/ticket/13085
Signed-off-by: Oliver Neukum <oneukum@suse.de>
CC: stable@vger.kernel.org
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| -rw-r--r-- | drivers/usb/core/devio.c | 2 | 
1 files changed, 1 insertions, 1 deletions
| diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c index 257876ea03a1..0b59731c3021 100644 --- a/drivers/usb/core/devio.c +++ b/drivers/usb/core/devio.c @@ -1509,7 +1509,7 @@ static int proc_do_submiturb(struct usb_dev_state *ps, struct usbdevfs_urb *uurb  	u = (is_in ? URB_DIR_IN : URB_DIR_OUT);  	if (uurb->flags & USBDEVFS_URB_ISO_ASAP)  		u |= URB_ISO_ASAP; -	if (uurb->flags & USBDEVFS_URB_SHORT_NOT_OK) +	if (uurb->flags & USBDEVFS_URB_SHORT_NOT_OK && is_in)  		u |= URB_SHORT_NOT_OK;  	if (uurb->flags & USBDEVFS_URB_NO_FSBR)  		u |= URB_NO_FSBR; | 
