]> git.baikalelectronics.ru Git - kernel.git/commit
USB: fix the usbfs flag sanitization for control transfers
authorAlan Stern <stern@rowland.harvard.edu>
Mon, 15 Oct 2018 20:55:04 +0000 (16:55 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 16 Oct 2018 11:09:36 +0000 (13:09 +0200)
commitf936415c7de4044394725a898644aabb5ef756bb
treeff6a03294a000077f970491d8e6db196b99b1ff2
parente047881516a7d6b655c74882bec0ed15b9e551ca
USB: fix the usbfs flag sanitization for control transfers

Commit 2dce08b8bb4c ("USB: usbdevfs: sanitize flags more") checks the
transfer flags for URBs submitted from userspace via usbfs.  However,
the check for whether the USBDEVFS_URB_SHORT_NOT_OK flag should be
allowed for a control transfer was added in the wrong place, before
the code has properly determined the direction of the control
transfer.  (Control transfers are special because for them, the
direction is set by the bRequestType byte of the Setup packet rather
than direction bit of the endpoint address.)

This patch moves code which sets up the allow_short flag for control
transfers down after is_in has been set to the correct value.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Reported-and-tested-by: syzbot+24a30223a4b609bb802e@syzkaller.appspotmail.com
Fixes: 2dce08b8bb4c ("USB: usbdevfs: sanitize flags more")
CC: Oliver Neukum <oneukum@suse.com>
CC: <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/core/devio.c