ALSA: hda/jack - Fix NULL-dereference at probing
authorTakashi Iwai <tiwai@suse.de>
Fri, 11 Nov 2011 16:53:03 +0000 (17:53 +0100)
committerTakashi Iwai <tiwai@suse.de>
Wed, 16 Nov 2011 10:14:04 +0000 (11:14 +0100)
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>
sound/pci/hda/hda_jack.c

index eac002d01fd66a89b00886aa218a7d727161e0d8..ef36cbb9e96863d534d2f43f49d612842ce39633 100644 (file)
@@ -194,6 +194,8 @@ void snd_hda_jack_report_sync(struct hda_codec *codec)
        for (i = 0; i < codec->jacktbl.used; i++, jack++)
                if (jack->nid) {
                        jack_detect_update(codec, jack);
+                       if (!jack->kctl)
+                               continue;
                        state = get_jack_plug_state(jack->pin_sense);
                        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;
        int type;
 
-       if (!jack)
+       if (!jack || !jack->jack)
                return;
 
        present = snd_hda_jack_detect(codec, nid);