diff options
author | Takashi Iwai <tiwai@suse.de> | 2011-11-11 11:53:03 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2011-11-16 05:14:04 -0500 |
commit | cfc7c9d307b6a3557e333f960218d344d3a70ce7 (patch) | |
tree | 1da5dcddefe6720aa4385a239e02f737124a188b /sound | |
parent | d1cb620081f51c78cf95224efb593a886875078f (diff) |
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>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/pci/hda/hda_jack.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sound/pci/hda/hda_jack.c b/sound/pci/hda/hda_jack.c index eac002d01fd6..ef36cbb9e968 100644 --- a/sound/pci/hda/hda_jack.c +++ b/sound/pci/hda/hda_jack.c | |||
@@ -194,6 +194,8 @@ void snd_hda_jack_report_sync(struct hda_codec *codec) | |||
194 | for (i = 0; i < codec->jacktbl.used; i++, jack++) | 194 | for (i = 0; i < codec->jacktbl.used; i++, jack++) |
195 | if (jack->nid) { | 195 | if (jack->nid) { |
196 | jack_detect_update(codec, jack); | 196 | jack_detect_update(codec, jack); |
197 | if (!jack->kctl) | ||
198 | continue; | ||
197 | state = get_jack_plug_state(jack->pin_sense); | 199 | state = get_jack_plug_state(jack->pin_sense); |
198 | snd_kctl_jack_report(codec->bus->card, jack->kctl, state); | 200 | snd_kctl_jack_report(codec->bus->card, jack->kctl, state); |
199 | } | 201 | } |
@@ -356,7 +358,7 @@ void snd_hda_input_jack_report(struct hda_codec *codec, hda_nid_t nid) | |||
356 | unsigned int present; | 358 | unsigned int present; |
357 | int type; | 359 | int type; |
358 | 360 | ||
359 | if (!jack) | 361 | if (!jack || !jack->jack) |
360 | return; | 362 | return; |
361 | 363 | ||
362 | present = snd_hda_jack_detect(codec, nid); | 364 | present = snd_hda_jack_detect(codec, nid); |