Skip to content

Commit

Permalink
ALSA: line6: Perform sanity check for each URB creation
Browse files Browse the repository at this point in the history
commit 6e8a914ad619042c5f25a4feb663357c4170fd8d 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.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
tiwai authored and gregkh committed Jul 22, 2020
1 parent 55500dd commit 079bc25
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 0 deletions.
2 changes: 2 additions & 0 deletions sound/usb/line6/capture.c
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,8 @@ int line6_create_audio_in_urbs(struct snd_line6_pcm *line6pcm)
urb->interval = LINE6_ISO_INTERVAL;
urb->error_count = 0;
urb->complete = audio_in_callback;
if (usb_urb_ep_type_check(urb))
return -EINVAL;
}

return 0;
Expand Down
2 changes: 2 additions & 0 deletions sound/usb/line6/playback.c
Original file line number Diff line number Diff line change
Expand Up @@ -436,6 +436,8 @@ int line6_create_audio_out_urbs(struct snd_line6_pcm *line6pcm)
urb->interval = LINE6_ISO_INTERVAL;
urb->error_count = 0;
urb->complete = audio_out_callback;
if (usb_urb_ep_type_check(urb))
return -EINVAL;
}

return 0;
Expand Down

0 comments on commit 079bc25

Please sign in to comment.