From 212a32b049e09933c39d983c4d9943e9aee9dadf Mon Sep 17 00:00:00 2001 From: Jie Yang Date: Thu, 30 Apr 2015 20:22:46 +0800 Subject: [PATCH] ALSA: jack: don't report input event for phantom jack There is no input_dev for phantom jack, we should not report input event for it, otherwise, NULL pointer dereference error will occur. Signed-off-by: Jie Yang --- sound/core/jack.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/sound/core/jack.c b/sound/core/jack.c index e8b51f5..0dbd618 100644 --- a/sound/core/jack.c +++ b/sound/core/jack.c @@ -339,6 +339,13 @@ void snd_jack_report(struct snd_jack *jack, int status) if (!jack) return; + list_for_each_entry(jack_kctl, &jack->kctl_list, list) + snd_kctl_jack_report(jack->card, jack_kctl->kctl, + status & jack_kctl->mask_bits); + + if (!jack->input_dev) + return; + for (i = 0; i < ARRAY_SIZE(jack->key); i++) { int testbit = SND_JACK_BTN_0 >> i; @@ -357,10 +364,6 @@ void snd_jack_report(struct snd_jack *jack, int status) input_sync(jack->input_dev); - list_for_each_entry(jack_kctl, &jack->kctl_list, list) - snd_kctl_jack_report(jack->card, jack_kctl->kctl, - status & jack_kctl->mask_bits); - } EXPORT_SYMBOL(snd_jack_report); -- 1.9.1