Răsfoiți Sursa

ALSA: hda/jack - Fix NULL-dereference at probing

At probing time, the elements that aren't assigned to kctl or jack may
be called.  Need proper NULL-checks.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai 13 ani în urmă
părinte
comite
cfc7c9d307
1 a modificat fișierele cu 3 adăugiri și 1 ștergeri
  1. 3 1
      sound/pci/hda/hda_jack.c

+ 3 - 1
sound/pci/hda/hda_jack.c

@@ -194,6 +194,8 @@ void snd_hda_jack_report_sync(struct hda_codec *codec)
 	for (i = 0; i < codec->jacktbl.used; i++, jack++)
 	for (i = 0; i < codec->jacktbl.used; i++, jack++)
 		if (jack->nid) {
 		if (jack->nid) {
 			jack_detect_update(codec, jack);
 			jack_detect_update(codec, jack);
+			if (!jack->kctl)
+				continue;
 			state = get_jack_plug_state(jack->pin_sense);
 			state = get_jack_plug_state(jack->pin_sense);
 			snd_kctl_jack_report(codec->bus->card, jack->kctl, state);
 			snd_kctl_jack_report(codec->bus->card, jack->kctl, state);
 		}
 		}
@@ -356,7 +358,7 @@ void snd_hda_input_jack_report(struct hda_codec *codec, hda_nid_t nid)
 	unsigned int present;
 	unsigned int present;
 	int type;
 	int type;
 
 
-	if (!jack)
+	if (!jack || !jack->jack)
 		return;
 		return;
 
 
 	present = snd_hda_jack_detect(codec, nid);
 	present = snd_hda_jack_detect(codec, nid);