summaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/hda_jack.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2011-11-11 17:53:03 +0100
committerTakashi Iwai <tiwai@suse.de>2011-11-16 11:14:04 +0100
commitcfc7c9d307b6a3557e333f960218d344d3a70ce7 (patch)
tree1da5dcddefe6720aa4385a239e02f737124a188b /sound/pci/hda/hda_jack.c
parentALSA: HDA: Jack: Export required functions from hda_jack.c (diff)
downloadlinux-cfc7c9d307b6a3557e333f960218d344d3a70ce7.tar.xz
linux-cfc7c9d307b6a3557e333f960218d344d3a70ce7.zip
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/pci/hda/hda_jack.c')
-rw-r--r--sound/pci/hda/hda_jack.c4
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)
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);