android_kernel_asus_sm8350/sound/usb
Takashi Iwai f72b96ff79 ALSA: line6: Fix racy initialization of LINE6 MIDI
commit 05ca447630334c323c9e2b788b61133ab75d60d3 upstream.

The initialization of MIDI devices that are found on some LINE6
drivers are currently done in a racy way; namely, the MIDI buffer
instance is allocated and initialized in each private_init callback
while the communication with the interface is already started via
line6_init_cap_control() call before that point.  This may lead to
Oops in line6_data_received() when a spurious event is received, as
reported by syzkaller.

This patch moves the MIDI initialization to line6_init_cap_control()
as well instead of the too-lately-called private_init for avoiding the
race.  Also this reduces slightly more lines, so it's a win-win
change.

Reported-by: syzbot+0d2b3feb0a2887862e06@syzkallerlkml..appspotmail.com
Link: https://lore.kernel.org/r/000000000000a4be9405c28520de@google.com
Link: https://lore.kernel.org/r/20210517132725.GA50495@hyeyoo
Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com>
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20210518083939.1927-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-05-26 12:05:16 +02:00
..
6fire treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
bcd2000 Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
caiaq treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
hiface ALSA: hiface: fix multiple memory leak bugs 2019-08-07 12:20:00 +02:00
line6 ALSA: line6: Fix racy initialization of LINE6 MIDI 2021-05-26 12:05:16 +02:00
misc treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 264 2019-06-05 17:30:28 +02:00
usx2y ALSA: usx2y: Fix potential NULL dereference 2020-04-29 16:33:15 +02:00
card.c ALSA: usb-audio: Add error checks for usb_driver_claim_interface() calls 2021-05-14 09:44:27 +02:00
card.h ALSA: usb-audio: work around streaming quirk for MacroSilicon MS2109 2020-08-19 08:16:24 +02:00
clock.c ALSA: usb-audio: Explicitly set up the clock selector 2021-05-11 14:04:13 +02:00
clock.h ALSA: usb-audio: Add clock validity quirk for Denon MC7000/MCX8000 2020-02-19 19:52:57 +01:00
debug.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
endpoint.c Revert "ALSA: usb-audio: Improve frames size computation" 2020-07-09 09:37:55 +02:00
endpoint.h Revert "ALSA: usb-audio: Improve frames size computation" 2020-07-09 09:37:55 +02:00
format.c ALSA: usb-audio: Fix potential out-of-bounds shift 2020-12-21 13:27:05 +01:00
format.h ALSA: usb: initial USB Audio Device Class 3.0 support 2018-03-21 11:46:33 +01:00
helper.c ALSA: usb-audio: Fix gpf in snd_usb_pipe_sanity_check 2019-07-30 12:32:21 +02:00
helper.h ALSA: usb-audio: More validations of descriptor units 2019-08-22 10:35:59 +02:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile Merge branch 'topic/usb-validation' into for-next 2019-08-22 15:42:03 +02:00
media.c media: sound/usb: Use Media Controller API to share media resources 2019-04-22 11:21:06 -04:00
media.h media: sound/usb: Use Media Controller API to share media resources 2019-04-22 11:21:06 -04:00
midi.c ALSA: usb: midi: don't return -ENOMEM when usb_urb_ep_type_check fails 2021-05-14 09:44:30 +02:00
midi.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mixer_maps.c ALSA: usb-audio: Add dB range mapping for Sennheiser Communications Headset PC 8 2021-05-11 14:04:13 +02:00
mixer_quirks.c ALSA: usb-audio: More constifications 2021-05-11 14:04:13 +02:00
mixer_quirks.h ALSA: usb-audio: Initialize Dell Dock playback volumes 2018-05-02 16:02:32 +02:00
mixer_scarlett_gen2.c ALSA: usb-audio: Annotate endianess in Scarlett gen2 quirk 2020-02-11 04:35:11 -08:00
mixer_scarlett_gen2.h ALSA: usb-audio: Scarlett Gen 2 mixer interface 2019-07-28 17:47:48 +02:00
mixer_scarlett.c ALSA: usb-audio: More constifications 2021-05-11 14:04:13 +02:00
mixer_scarlett.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mixer_us16x08.c ALSA: usb-audio: US16x08: fix value count for level meters 2020-12-08 10:40:27 +01:00
mixer_us16x08.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mixer.c ALSA: usb-audio: More constifications 2021-05-11 14:04:13 +02:00
mixer.h ALSA: usb-audio: Fix OOB access of mixer element list 2020-06-30 15:36:50 -04:00
pcm.c ALSA: usb-audio: Fix PCM buffer allocation in non-vmalloc mode 2021-03-04 10:26:10 +01:00
pcm.h ALSA: usb-audio: Add UAC3 Power Domains to suspend/resume 2018-07-31 15:01:36 +02:00
power.c ALSA: usb-audio: More validations of descriptor units 2019-08-22 10:35:59 +02:00
power.h ALSA: usb-audio: Initial Power Domain support 2018-07-31 15:01:22 +02:00
proc.c ALSA: usb-audio: More constifications 2021-05-11 14:04:13 +02:00
proc.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
quirks-table.h ALSA: usb-audio: Add MIDI quirk for Vox ToneLab EX 2021-05-07 10:51:37 +02:00
quirks.c ALSA: usb-audio: Add error checks for usb_driver_claim_interface() calls 2021-05-14 09:44:27 +02:00
quirks.h ALSA: usb-audio: Rewrite registration quirk handling 2020-07-22 09:32:59 +02:00
stream.c ALSA: usb-audio: More constifications 2021-05-11 14:04:13 +02:00
stream.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
usbaudio.h ALSA: usb-audio: Add error checks for usb_driver_claim_interface() calls 2021-05-14 09:44:27 +02:00
validate.c ALSA: usb-audio: More constifications 2021-05-11 14:04:13 +02:00