[ALSA] Fix NULL dereference with null modelname
Fix the NULL dereference of modelname option. The check is moved to
find_codec_preset() now, too.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 4c0a6a5..e768187 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -403,6 +403,9 @@
{
const struct hda_codec_preset **tbl, *preset;
+ if (codec->bus->modelname && !strcmp(codec->bus->modelname, "generic"))
+ return NULL; /* use the generic parser */
+
for (tbl = hda_preset_tables; *tbl; tbl++) {
for (preset = *tbl; preset->id; preset++) {
u32 mask = preset->mask;
@@ -573,8 +576,7 @@
0);
}
- if (strcmp(codec->bus->modelname, "generic"))
- codec->preset = find_codec_preset(codec);
+ codec->preset = find_codec_preset(codec);
if (! *bus->card->mixername)
snd_hda_get_codec_name(codec, bus->card->mixername,
sizeof(bus->card->mixername));