Patch "USB: usbfs: Filter flags passed in from user space" has been added to the 4.4-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
USB: usbfs: Filter flags passed in from user space
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
usb-usbfs-filter-flags-passed-in-from-user-space.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
446f666da9f019ce2ffd03800995487e79a91462Mon Sep 17 00:00:00 2001
From: Oliver Neukum <[email protected]>
Date: Thu, 23 Nov 2017 16:39:52 +0100
Subject: USB: usbfs: Filter flags passed in from user space
From: Oliver Neukum <[email protected]>
commit 446f666da9f019ce2ffd03800995487e79a91462 upstream.
USBDEVFS_URB_ISO_ASAP must be accepted only for ISO endpoints. Improve sanity checking.
--- drivers/usb/core/devio.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-)
drivers/usb/core/devio.c +9 -5
@@ -1293,14 +1293,18 @@ static int proc_do_submiturb(struct usb_int number_of_packets =0 ;unsigned int stream_id =0 ;void *buf; - -if (uurb->flags & ~(USBDEVFS_URB_ISO_ASAP | -USBDEVFS_URB_SHORT_NOT_OK | +unsigned long mask =USBDEVFS_URB_SHORT_NOT_OK |USBDEVFS_URB_BULK_CONTINUATION |USBDEVFS_URB_NO_FSBR |USBDEVFS_URB_ZERO_PACKET | -USBDEVFS_URB_NO_INTERRUPT )) -return -EINVAL ; +USBDEVFS_URB_NO_INTERRUPT ; +/* USBDEVFS_URB_ISO_ASAP is a special case */ +if (uurb->type ==USBDEVFS_URB_TYPE_ISO ) + mask |=USBDEVFS_URB_ISO_ASAP ; + +if (uurb->flags & ~mask) +return -EINVAL ; +if ((unsigned int )uurb->buffer_length >=USBFS_XFER_MAX )return -EINVAL ;if (uurb->buffer_length >0 && !uurb->buffer)
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/usb-usbfs-filter-flags-passed-in-from-user-space.patch