linux-stable/sound
Takashi Iwai f8927c61c3 ALSA: seq: Fix racy deletion of subscriber
commit 97367c9722 upstream.

It turned out that the current implementation of the port subscription
is racy.  The subscription contains two linked lists, and we have to
add to or delete from both lists.  Since both connection and
disconnection procedures perform the same order for those two lists
(i.e. src list, then dest list), when a deletion happens during a
connection procedure, the src list may be deleted before the dest list
addition completes, and this may lead to a use-after-free or an Oops,
even though the access to both lists are protected via mutex.

The simple workaround for this race is to change the access order for
the disconnection, namely, dest list, then src list.  This assures
that the connection has been established when disconnecting, and also
the concurrent deletion can be avoided.

Reported-and-tested-by: folkert <folkert@vanheusden.com>
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20210801182754.GP890690@belle.intranet.vanheusden.com
Link: https://lore.kernel.org/r/20210803114312.2536-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-08-15 13:03:28 +02:00
..
aoa ALSA: aoa: onyx: always initialize register read value 2020-01-27 14:46:41 +01:00
arm
atmel
core ALSA: seq: Fix racy deletion of subscriber 2021-08-15 13:03:28 +02:00
drivers ALSA: aloop: Fix initialization of controls 2021-04-16 11:57:47 +02:00
firewire ALSA: bebob: add support for ToneWeal FW66 2021-07-20 16:17:50 +02:00
hda ALSA: hda: prevent undefined shift in snd_hdac_ext_bus_get_link() 2020-11-18 18:27:53 +01:00
i2c ALSA: i2c/cs8427: Fix int to char conversion 2019-12-01 09:13:39 +01:00
isa ALSA: sb: Fix potential ABBA deadlock in CSP driver 2021-07-28 11:12:18 +02:00
mips
oss
parisc
pci ALSA: hda: Add IRQ check for platform_get_irq() 2021-07-20 16:17:51 +02:00
pcmcia
ppc ALSA: ppc: fix error return code in snd_pmac_probe() 2021-07-20 16:17:50 +02:00
sh ALSA: sh: Fix compile warning wrt const 2020-02-28 16:36:02 +01:00
soc ASoC: soc-core: Fix the error return code in snd_soc_of_parse_audio_routing() 2021-07-20 16:17:50 +02:00
sparc ALSA: sparc: Fix invalid snd_free_pages() at error path 2018-12-05 19:41:24 +01:00
spi
synth ALSA: emux: Fix potential Spectre v1 vulnerabilities 2019-01-09 17:14:46 +01:00
usb ALSA: usb-audio: fix rate on Ozone Z90 USB headset 2021-07-20 16:17:27 +02:00
x86 ALSA: x86: Fix runtime PM for hdmi-lpe-audio 2019-03-27 14:13:52 +09:00
ac97_bus.c
Kconfig
last.c
Makefile
sound_core.c sound: fix a memory leak bug 2019-08-16 10:13:46 +02:00