Commit efaac8f6 authored by Takashi Iwai's avatar Takashi Iwai Committed by Khalid Elmously

ALSA: line6: Perform sanity check for each URB creation

BugLink: https://bugs.launchpad.net/bugs/1888690

commit 6e8a914a upstream.

LINE6 drivers create stream URBs with a fixed pipe without checking
its validity, and this may lead to a kernel WARNING at the submission
when a malformed USB descriptor is passed.

For avoiding the kernel warning, perform the similar sanity checks for
each pipe type at creating a URB.

Reported-by: syzbot+c190f6858a04ea7fbc52@syzkaller.appspotmail.com
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/s5hv9iv4hq8.wl-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
Signed-off-by: default avatarKhalid Elmously <khalid.elmously@canonical.com>
parent 62a5b8b8
...@@ -269,6 +269,8 @@ int line6_create_audio_in_urbs(struct snd_line6_pcm *line6pcm) ...@@ -269,6 +269,8 @@ int line6_create_audio_in_urbs(struct snd_line6_pcm *line6pcm)
urb->interval = LINE6_ISO_INTERVAL; urb->interval = LINE6_ISO_INTERVAL;
urb->error_count = 0; urb->error_count = 0;
urb->complete = audio_in_callback; urb->complete = audio_in_callback;
if (usb_urb_ep_type_check(urb))
return -EINVAL;
} }
return 0; return 0;
......
...@@ -423,6 +423,8 @@ int line6_create_audio_out_urbs(struct snd_line6_pcm *line6pcm) ...@@ -423,6 +423,8 @@ int line6_create_audio_out_urbs(struct snd_line6_pcm *line6pcm)
urb->interval = LINE6_ISO_INTERVAL; urb->interval = LINE6_ISO_INTERVAL;
urb->error_count = 0; urb->error_count = 0;
urb->complete = audio_out_callback; urb->complete = audio_out_callback;
if (usb_urb_ep_type_check(urb))
return -EINVAL;
} }
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment