linux/sound/usb
Takashi Iwai 05ca447630 ALSA: line6: Fix racy initialization of LINE6 MIDI
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>
2021-05-19 16:25:57 +02:00
..
6fire module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
bcd2000 ALSA: Convert strlcpy to strscpy when return value is unused 2021-01-08 09:30:05 +01:00
caiaq module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
hiface module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
line6 ALSA: line6: Fix racy initialization of LINE6 MIDI 2021-05-19 16:25:57 +02:00
misc module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
usx2y module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
Kconfig sound: Fix Kconfig indentation 2019-10-07 03:53:03 +02:00
Makefile ALSA: usb-audio: Factor out the implicit feedback quirk code 2020-11-23 15:17:00 +01:00
card.c ALSA: usb-audio: Skip probe of UA-101 devices 2021-04-09 09:57:30 +02:00
card.h ALSA: usb-audio: More strict state change in EP 2021-02-08 16:00:06 +01:00
clock.c ALSA: usb-audio: Explicitly set up the clock selector 2021-04-13 12:05:12 +02:00
clock.h ALSA: usb-audio: Constify audioformat pointer references 2020-11-23 15:15:36 +01:00
endpoint.c ALSA: usb-audio: Fix implicit sync clearance at stopping stream 2021-04-26 08:37:05 +02:00
endpoint.h ALSA: usb-audio: Avoid unnecessary interface re-setup 2021-01-08 23:43:37 +01:00
format.c ALSA: usb-audio: workaround for iface reset issue 2021-01-23 16:59:42 +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: Add snd_usb_get_host_interface() helper 2020-11-23 15:13:47 +01:00
helper.h ALSA: usb-audio: Add snd_usb_get_host_interface() helper 2020-11-23 15:13:47 +01:00
implicit.c ALSA: usb-audio: Generic application of implicit fb to Roland/BOSS devices 2021-04-22 18:19:47 +02:00
implicit.h ALSA: usb-audio: Factor out the implicit feedback quirk code 2020-11-23 15:17:00 +01: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-audio: Fix potential out-of-bounce access in MIDI EP parser 2021-05-11 11:10:37 +02:00
midi.h ALSA: usb-audio: generate midi streaming substream names from jack names 2021-03-01 09:21:54 +01:00
mixer.c ALSA: usb-audio: Remove redundant assignment to len 2021-04-28 12:07:39 +02:00
mixer.h ALSA: usb-audio: Check connector value on resume 2021-03-26 09:10:33 +01:00
mixer_maps.c ALSA: usb-audio: Add dB range mapping for Sennheiser Communications Headset PC 8 2021-05-03 13:35:58 +02:00
mixer_quirks.c ALSA: control - add generic LED API 2021-03-30 17:42:40 +02:00
mixer_quirks.h ALSA: usb-audio: Initialize Dell Dock playback volumes 2018-05-02 16:02:32 +02:00
mixer_s1810c.c ALSA: usb-audio: Fix some typos 2020-06-30 19:48:18 +02:00
mixer_s1810c.h ALSA: usb-audio: Add support for Presonus Studio 1810c 2020-02-15 09:46:16 +01:00
mixer_scarlett.c ALSA: Convert strlcpy to strscpy when return value is unused 2021-01-08 09:30:05 +01: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_scarlett_gen2.c ALSA: Convert strlcpy to strscpy when return value is unused 2021-01-08 09:30:05 +01:00
mixer_scarlett_gen2.h ALSA: usb-audio: Scarlett Gen 2 mixer interface 2019-07-28 17:47:48 +02:00
mixer_us16x08.c ALSA: Convert strlcpy to strscpy when return value is unused 2021-01-08 09:30:05 +01:00
mixer_us16x08.h ALSA: usb: Constify snd_kcontrol_new items 2020-01-03 09:24:34 +01:00
pcm.c ALSA: usb-audio: Allow modifying parameters with succeeding hw_params calls 2021-02-28 09:02:08 +01:00
pcm.h ALSA: usb-audio: Constify audioformat pointer references 2020-11-23 15:15:36 +01: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: Show sync endpoint information in proc outputs 2020-11-23 15:16:45 +01: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-04-09 09:58:13 +02:00
quirks.c ALSA: usb-audio: DJM-750: ensure format is set 2021-04-19 09:42:35 +02:00
quirks.h ALSA: usb-audio: Constify audioformat pointer references 2020-11-23 15:15:36 +01:00
stream.c Merge branch 'for-linus' into for-next 2020-12-14 09:05:29 +01: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: Apply implicit feedback mode for BOSS devices 2021-04-14 14:24:22 +02:00
validate.c ALSA: usb-audio: Fix endianess in descriptor validation 2020-02-01 09:06:11 +01:00