linux/sound/pci
Gergo Koteles 75a25d31b8 ALSA: hda/tas2781: leave hda_component in usable state
Unloading then loading the module causes a NULL ponter dereference.

The hda_unbind zeroes the hda_component, later the hda_bind tries
to dereference the codec field.

The hda_component is only initialized once by tas2781_generic_fixup.

Set only previously modified fields to NULL.

BUG: kernel NULL pointer dereference, address: 0000000000000322
Call Trace:
 <TASK>
 ? __die+0x23/0x70
 ? page_fault_oops+0x171/0x4e0
 ? exc_page_fault+0x7f/0x180
 ? asm_exc_page_fault+0x26/0x30
 ? tas2781_hda_bind+0x59/0x140 [snd_hda_scodec_tas2781_i2c]
 component_bind_all+0xf3/0x240
 try_to_bring_up_aggregate_device+0x1c3/0x270
 __component_add+0xbc/0x1a0
 tas2781_hda_i2c_probe+0x289/0x3a0 [snd_hda_scodec_tas2781_i2c]
 i2c_device_probe+0x136/0x2e0

Fixes: 5be27f1e3e ("ALSA: hda/tas2781: Add tas2781 HDA driver")
Cc: stable@vger.kernel.org
Signed-off-by: Gergo Koteles <soyer@irl.hu>
Link: https://lore.kernel.org/r/8b8ed2bd5f75fbb32e354a3226c2f966fa85b46b.1702156522.git.soyer@irl.hu
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-12-10 10:06:31 +01:00
..
ac97 ALSA: ac97: Fix possible error value of *rac97 2023-08-24 10:02:01 +02:00
ali5451 ALSA: ali5451: Fix the missing snd_card_free() call at probe error 2022-04-12 17:58:19 +02:00
asihpi extract and use FILE_LINE macro 2023-10-18 14:43:21 -07:00
au88x0 ALSA: au88x0: use explicitly signed char 2022-10-25 15:14:29 +02:00
aw2 ALSA: aw2: Fix the missing snd_card_free() call at probe error 2022-04-12 17:58:38 +02:00
ca0106 ALSA: ca0106: Use the standard snd_ctl_add_followers() helper 2023-07-21 09:37:48 +02:00
cs46xx ALSA: cs46xx: Simplify with snd_ctl_find_id_mixer() 2023-07-21 09:10:39 +02:00
cs5535audio ALSA: cs5535audio: Remove the redundant assignment 2022-11-07 09:16:31 +01:00
ctxfi ALSA: ctxfi: fix typo in comment 2022-05-23 09:48:29 +02:00
echoaudio Merge branch 'for-linus' into for-next 2022-04-13 10:49:49 +02:00
emu10k1 ALSA: emu10k1: Simplify with snd_ctl_find_id_mixer() 2023-07-21 09:10:40 +02:00
hda ALSA: hda/tas2781: leave hda_component in usable state 2023-12-10 10:06:31 +01:00
ice1712 ALSA: ice1712: Use the standard snd_ctl_add_followers() helper 2023-07-21 09:37:49 +02:00
korg1212 ALSA: korg1212: Convert to generic PCM copy ops 2023-08-18 12:18:20 +02:00
lola ALSA: lola: Bounds check loop iterator against streams array size 2022-05-21 08:48:57 +02:00
lx6464es ALSA: pci: lx6464es: fix a debug loop 2023-02-01 13:14:26 +01:00
mixart ALSA: mixart: Replace with __packed attribute 2023-10-26 09:43:03 +02:00
nm256 ALSA: nm256: Convert to generic PCM copy ops 2023-08-18 12:18:21 +02:00
oxygen ALSA: oxygen: Fix the missing snd_card_free() call at probe error 2022-04-12 17:58:40 +02:00
pcxhr ALSA: pcxhr: "fix" PCXHR_REG_TO_PORT definition 2021-09-16 11:09:04 +02:00
riptide ALSA: riptide: Fix -Wformat-truncation warning for longname string 2023-09-15 13:23:06 +02:00
rme9652 ALSA: rme9652: Convert to generic PCM copy ops 2023-08-18 12:18:24 +02:00
trident ALSA: trident: Allocate resources with device-managed APIs 2021-07-19 16:17:08 +02:00
vx222 ALSA: vx222: fix null-ptr-deref 2021-09-07 07:13:19 +02:00
ymfpci ALSA: ymfpci: Fix the missing snd_card_free() call at probe error 2023-08-23 18:17:33 +02:00
ad1889.c ALSA: ad1889: Fix the missing snd_card_free() call at probe error 2022-04-12 17:58:18 +02:00
ad1889.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ak4531_codec.c ALSA: ak4531: Fix assignment in if condition 2021-06-09 17:29:49 +02:00
als300.c ALSA: als300: Fix the missing snd_card_free() call at probe error 2022-04-12 17:58:38 +02:00
als4000.c ALSA: als4000: Fix the missing snd_card_free() call at probe error 2022-04-12 17:58:19 +02:00
atiixp_modem.c ALSA: atiixp: Fix the missing snd_card_free() call at probe error 2022-04-12 17:58:20 +02:00
atiixp.c ALSA: atiixp: Fix the missing snd_card_free() call at probe error 2022-04-12 17:58:20 +02:00
azt3328.c ALSA: azt3328: Replace with __packed attribute 2023-10-26 09:42:59 +02:00
azt3328.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
bt87x.c ALSA: bt87x: Fix the missing snd_card_free() call at probe error 2022-04-12 17:58:36 +02:00
cmipci.c ALSA: cmipci: Fix -Wformat-truncation warning 2023-09-15 13:22:16 +02:00
cs4281.c ALSA: cs4281: Fix the missing snd_card_free() call at probe error 2022-04-12 17:58:23 +02:00
cs5530.c ALSA: cs5530: Allocate resources with device-managed APIs 2021-07-19 16:16:43 +02:00
ens1370.c ASoC: doc: Update dead links 2022-06-30 10:56:27 +01:00
ens1371.c
es1938.c ALSA: es1938: Convert to generic PCM copy ops 2023-08-18 12:18:19 +02:00
es1968.c ALSA: es1968: Simplify with snd_ctl_find_id_mixer() 2023-07-21 09:10:41 +02:00
fm801.c ALSA: fm801: Fix the missing snd_card_free() call at probe error 2022-04-12 17:58:27 +02:00
intel8x0.c ALSA: intel8x0: Fix the missing snd_card_free() call at probe error 2022-04-12 17:58:29 +02:00
intel8x0m.c ALSA: intel8x0m: fix name of SIS7013 sound chip in comment 2023-10-06 11:11:40 +02:00
Kconfig ALSA: add HAS_IOPORT dependencies 2023-05-22 16:43:47 +02:00
maestro3.c ALSA: maestro3: Simplify with snd_ctl_find_id_mixer() 2023-07-21 09:10:42 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rme32.c ALSA: rme32: Convert to generic PCM copy ops 2023-08-18 12:18:21 +02:00
rme96.c ALSA: rme96: Convert to generic PCM copy ops 2023-08-18 12:18:22 +02:00
sis7019.c ALSA: sis7019: Fix the missing error handling 2022-04-12 17:58:35 +02:00
sis7019.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 274 2019-06-05 17:30:30 +02:00
sonicvibes.c ALSA: sonicvibes: Fix the missing snd_card_free() call at probe error 2022-04-12 17:58:33 +02:00
via82xx_modem.c ALSA: via82xx: Fix the missing snd_card_free() call at probe error 2022-04-12 17:58:34 +02:00
via82xx.c ALSA: via82xx: Simplify with snd_ctl_find_id_mixer() 2023-07-21 09:10:43 +02:00