linux/drivers/video
Alan Stern ed9de4ed39 fbdev: udlfb: Fix endpoint check
The syzbot fuzzer detected a problem in the udlfb driver, caused by an
endpoint not having the expected type:

usb 1-1: Read EDID byte 0 failed: -71
usb 1-1: Unable to get valid EDID from device/display
------------[ cut here ]------------
usb 1-1: BOGUS urb xfer, pipe 3 != type 1
WARNING: CPU: 0 PID: 9 at drivers/usb/core/urb.c:504 usb_submit_urb+0xed6/0x1880
drivers/usb/core/urb.c:504
Modules linked in:
CPU: 0 PID: 9 Comm: kworker/0:1 Not tainted
6.4.0-rc1-syzkaller-00016-ga4422ff22142 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google
04/28/2023
Workqueue: usb_hub_wq hub_event
RIP: 0010:usb_submit_urb+0xed6/0x1880 drivers/usb/core/urb.c:504
...
Call Trace:
 <TASK>
 dlfb_submit_urb+0x92/0x180 drivers/video/fbdev/udlfb.c:1980
 dlfb_set_video_mode+0x21f0/0x2950 drivers/video/fbdev/udlfb.c:315
 dlfb_ops_set_par+0x2a7/0x8d0 drivers/video/fbdev/udlfb.c:1111
 dlfb_usb_probe+0x149a/0x2710 drivers/video/fbdev/udlfb.c:1743

The current approach for this issue failed to catch the problem
because it only checks for the existence of a bulk-OUT endpoint; it
doesn't check whether this endpoint is the one that the driver will
actually use.

We can fix the problem by instead checking that the endpoint used by
the driver does exist and is bulk-OUT.

Reported-and-tested-by: syzbot+0e22d63dcebb802b9bc8@syzkaller.appspotmail.com
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
CC: Pavel Skripkin <paskripkin@gmail.com>
Fixes: aaf7dbe073 ("video: fbdev: udlfb: properly check endpoint type")
Signed-off-by: Helge Deller <deller@gmx.de>
2023-05-20 07:02:13 +02:00
..
backlight - Fix-ups 2023-05-02 10:46:11 -07:00
console VT: Bump font size limitation to 64x128 pixels 2023-01-19 16:29:01 +01:00
fbdev fbdev: udlfb: Fix endpoint check 2023-05-20 07:02:13 +02:00
logo drivers: video: logo: add SPDX comment, remove GPL notice in pnmtologo.c 2023-03-14 18:49:39 +01:00
aperture.c video/aperture: Fix typos in comments 2023-04-04 12:40:08 +02:00
cmdline.c fbdev: Handle video= parameter in video/cmdline.c 2023-02-20 14:56:48 +01:00
display_timing.c
hdmi.c video/hdmi: Add audio_infoframe packing for DP 2022-09-04 15:31:59 +03:00
Kconfig fbdev: Handle video= parameter in video/cmdline.c 2023-02-20 14:56:48 +01:00
Makefile fbdev: Handle video= parameter in video/cmdline.c 2023-02-20 14:56:48 +01:00
nomodeset.c drm: Move nomodeset kernel parameter to drivers/video 2022-11-16 13:26:12 +01:00
of_display_timing.c video: fbdev: of: display_timing: Remove a redundant zeroing of memory 2022-04-04 08:55:23 +02:00
of_videomode.c
vgastate.c
videomode.c