android_kernel_xiaomi_sm8450/sound
Tuo Li 9f9eed4511 ALSA: hda: fix a possible null-pointer dereference due to data race in snd_hdac_regmap_sync()
[ Upstream commit 1f4a08fed450db87fbb5ff5105354158bdbe1a22 ]

The variable codec->regmap is often protected by the lock
codec->regmap_lock when is accessed. However, it is accessed without
holding the lock when is accessed in snd_hdac_regmap_sync():

  if (codec->regmap)

In my opinion, this may be a harmful race, because if codec->regmap is
set to NULL right after the condition is checked, a null-pointer
dereference can occur in the called function regcache_sync():

  map->lock(map->lock_arg); --> Line 360 in drivers/base/regmap/regcache.c

To fix this possible null-pointer dereference caused by data race, the
mutex_lock coverage is extended to protect the if statement as well as the
function call to regcache_sync().

[ Note: the lack of the regmap_lock itself is harmless for the current
  codec driver implementations, as snd_hdac_regmap_sync() is only for
  PM runtime resume that is prohibited during the codec probe.
  But the change makes the whole code more consistent, so it's merged
  as is -- tiwai ]

Reported-by: BassCheck <bass@buaa.edu.cn>
Signed-off-by: Tuo Li <islituo@gmail.com>
Link: https://lore.kernel.org/r/20230703031016.1184711-1-islituo@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-08-26 15:26:46 +02:00
..
ac97 ALSA: ac97: fix PM reference leak in ac97_bus_remove() 2021-07-20 16:05:40 +02:00
aoa ALSA: aoa: Fix I2S device accounting 2022-11-03 23:57:53 +09:00
arm amba: Make the remove callback return void 2022-04-08 14:40:02 +02:00
atmel ALSA: atmel: ac97: clarify operator precedence 2020-09-03 09:27:34 +02:00
core ALSA: jack: Fix mutex call in snd_jack_report() 2023-07-27 08:44:10 +02:00
drivers ALSA: mts64: fix possible null-ptr-defer in snd_mts64_interrupt 2023-01-14 10:15:38 +01:00
firewire ALSA: firewire-digi00x: prevent potential use after free 2023-05-30 12:57:51 +01:00
hda ALSA: hda: fix a possible null-pointer dereference due to data race in snd_hdac_regmap_sync() 2023-08-26 15:26:46 +02:00
i2c ALSA: i2c/cs8427: fix iec958 mixer control deactivation 2023-04-20 12:10:24 +02:00
isa ALSA: wavefront: Proper check of get_user() error 2022-05-25 09:17:55 +02:00
mips hal2: convert to dma_alloc_noncoherent 2020-09-25 06:20:44 +02:00
oss sound/oss/dmasound: fix 'dmasound_setup' defined but not used 2023-05-17 11:48:08 +02:00
parisc
pci ALSA: hda/realtek: Add quirks for Unis H3C Desktop B760 & Q760 2023-08-26 15:26:46 +02:00
pcmcia ALSA: Use fallthrough pseudo-keyword 2020-07-09 13:01:29 +02:00
ppc ALSA: ppc: fix error return code in snd_pmac_probe() 2021-07-20 16:05:43 +02:00
sh
soc ASoC: Intel: sof_sdw: Add support for Rex soundwire 2023-08-26 15:26:43 +02:00
sparc ALSA: sparc: dbri: fix repeated word 'the' 2020-10-17 09:58:35 +02:00
spi ALSA: spi: Add check for clk_enable() 2022-04-08 14:40:08 +02:00
synth ALSA: emux: Avoid potential array out-of-bound in snd_emux_xg_control() 2023-02-15 17:22:22 +01:00
usb ALSA: usb-audio: Add a sample rate workaround for Line6 Pod Go 2023-05-30 12:57:53 +01:00
x86 ALSA: intel_hdmi: Fix reference to PCM buffer address 2022-03-08 19:09:31 +01:00
xen ALSA: xen: Remove superfluous fall through comments 2020-07-09 19:10:37 +02:00
ac97_bus.c
Kconfig
last.c
Makefile
sound_core.c