Commit 10a8053
usb: usbtmc: Fix bug in pipe direction for control transfers
commit e9b667a upstream.
The syzbot fuzzer reported a minor bug in the usbtmc driver:
usb 5-1: BOGUS control dir, pipe 80001e80 doesn't match bRequestType 0
WARNING: CPU: 0 PID: 3813 at drivers/usb/core/urb.c:412
usb_submit_urb+0x13a5/0x1970 drivers/usb/core/urb.c:410
Modules linked in:
CPU: 0 PID: 3813 Comm: syz-executor122 Not tainted
5.17.0-rc5-syzkaller-00306-g2293be58d6a1 #0
...
Call Trace:
<TASK>
usb_start_wait_urb+0x113/0x530 drivers/usb/core/message.c:58
usb_internal_control_msg drivers/usb/core/message.c:102 [inline]
usb_control_msg+0x2a5/0x4b0 drivers/usb/core/message.c:153
usbtmc_ioctl_request drivers/usb/class/usbtmc.c:1947 [inline]
The problem is that usbtmc_ioctl_request() uses usb_rcvctrlpipe() for
all of its transfers, whether they are in or out. It's easy to fix.
CC: <stable@vger.kernel.org>
Reported-and-tested-by: syzbot+a48e3d1a875240cab5de@syzkaller.appspotmail.com
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Link: https://lore.kernel.org/r/YiEsYTPEE6lOCOA5@rowland.harvard.edu
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>1 parent 00bdd9b commit 10a8053
1 file changed
Lines changed: 10 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1889 | 1889 | | |
1890 | 1890 | | |
1891 | 1891 | | |
| 1892 | + | |
1892 | 1893 | | |
1893 | 1894 | | |
1894 | 1895 | | |
| |||
1898 | 1899 | | |
1899 | 1900 | | |
1900 | 1901 | | |
| 1902 | + | |
| 1903 | + | |
1901 | 1904 | | |
1902 | 1905 | | |
1903 | 1906 | | |
1904 | 1907 | | |
1905 | 1908 | | |
1906 | | - | |
| 1909 | + | |
1907 | 1910 | | |
1908 | 1911 | | |
1909 | 1912 | | |
| |||
1914 | 1917 | | |
1915 | 1918 | | |
1916 | 1919 | | |
| 1920 | + | |
| 1921 | + | |
| 1922 | + | |
| 1923 | + | |
1917 | 1924 | | |
1918 | | - | |
| 1925 | + | |
1919 | 1926 | | |
1920 | 1927 | | |
1921 | 1928 | | |
| |||
1927 | 1934 | | |
1928 | 1935 | | |
1929 | 1936 | | |
1930 | | - | |
| 1937 | + | |
1931 | 1938 | | |
1932 | 1939 | | |
1933 | 1940 | | |
| |||
0 commit comments