From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755541AbcBPR06 (ORCPT ); Tue, 16 Feb 2016 12:26:58 -0500 Received: from mout.kundenserver.de ([212.227.126.133]:52547 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753227AbcBPR04 (ORCPT ); Tue, 16 Feb 2016 12:26:56 -0500 From: Arnd Bergmann To: Takashi Iwai Cc: linux-arm-kernel@lists.infradead.org, Mark Brown , alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, Jaroslav Kysela , David Henningsson , Han Lu , Libin Yang , Thierry Reding Subject: Re: [PATCH] sound: hdmi: avoid dereferencing uninitialized 'jack' pointer Date: Tue, 16 Feb 2016 18:26:09 +0100 Message-ID: <2706488.VpKveMVPGI@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) In-Reply-To: References: <1455634059-1896914-1-git-send-email-arnd@arndb.de> <112888486.mQgaWiH0PI@wuerfel> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:Zxl/kIfsCuMkCiSLqqTVcEW5xF+4IPpjnsOFCiQzBp2aBUK8Ln3 umKcyCLMcPY5/qRs53F2fCmj04Xt3cmFLZVfk9yr3mNhHieIvfP/+jQuYdmQ7wakrSs3IYK SDsL8lxFYPARJwTsgReQ/O2nBGLkW/ugT/zNhG3kL9/kJfC22Da71ubMhIt1xHTAAG0qiOt g5xver+b43R+dYuqA6D9A== X-UI-Out-Filterresults: notjunk:1;V01:K0:/a7uFVjIoN0=:jxVRUHyUjH3XM4CmaWGAbr PZHKDuvay7mh0kayOsAZW1Wge/mb3R1vaSOvpgLwwe0OTegmWNeLA8EIuTnxltV3eKTr4FNJs mKBvgrYvsOkN5mbZ1PpetNaw4JTDj4AspXgsrUZVRmR0brW5log+3dCCsgiI0Nmq2H0fXE+lI bkyaLY54BFim73Ptln28mtELZUJRg1qU2FbM43WArK+XfPCdtrarCZXpUZRQJmV7P8yuALuDD HqXmcavskGb/E67zLyhgWMxosag1KQ8HhTukNXnsSR6RKdfIsfjcdGcPpMxxeedkPOm5fXND9 SR2KJy3TpMkb2+1QeyJ1MRK4/bmb+rt5Zua/VD6+0gWrfCykfg2Cmxuwi8DR6eG2rIvQ0d9Gt bTxh8q211bNcXzKwn6Y1Qo78fplm09nNcfwv5mxFH9EQMcptbCJQgJAbPt9DlRzR9LZOy0jY1 6UUCGIcIJVz4rr2VRNhG3EbBfd8h4LZt6D0lh4+Mwk4+OpanzhuTlaF31N0oDkq2H4HU6vooo puqwPiyP7J3ZzFr53g/rAakhrLy8hxBWG9cljpg3D0z8PYw4Hx0CJeYJMOnmH5kLNe+FXsOOo h4IsQz6BCasELGkmD/CH18ESy5w0VuoQ9apm8iDmulsh8ZD7Ohm4py3HQ4hH7+Q5crqsXT6Yy Yxvg4nzluD+rmbq6Ce7vIdQ5rpwD9hZ7iPY/JJxotw5c737efJcjXdVRterjJaleP59UNwz+E aHi5FQYCJh8D8g6Y Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tuesday 16 February 2016 18:10:02 Takashi Iwai wrote: > diff --git a/include/sound/jack.h b/include/sound/jack.h > index 23bede121c78..a27c253a3207 100644 > --- a/include/sound/jack.h > +++ b/include/sound/jack.h > @@ -99,6 +99,7 @@ void snd_jack_report(struct snd_jack *jack, int status); > static inline int snd_jack_new(struct snd_card *card, const char *id, int type, > struct snd_jack **jack, bool initial_kctl, bool phantom_jack) > { > + *jack = NULL; > return 0; > } > > diff --git a/sound/pci/hda/hda_jack.c b/sound/pci/hda/hda_jack.c > index a33234e04d4f..babd3a8864a1 100644 > --- a/sound/pci/hda/hda_jack.c > +++ b/sound/pci/hda/hda_jack.c > @@ -403,10 +403,12 @@ int snd_hda_jack_add_kctl(struct hda_codec *codec, hda_nid_t nid, > > jack->phantom_jack = !!phantom_jack; > jack->type = type; > - jack->jack->private_data = jack; > - jack->jack->private_free = hda_free_jack_priv; > - state = snd_hda_jack_detect(codec, nid); > - snd_jack_report(jack->jack, state ? jack->type : 0); > + if (jack->jack) { > + jack->jack->private_data = jack; > + jack->jack->private_free = hda_free_jack_priv; > + state = snd_hda_jack_detect(codec, nid); > + snd_jack_report(jack->jack, state ? jack->type : 0); > + } > > return 0; > } > diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c > index 8ee78dbd4c60..34a7b3aaba11 100644 > --- a/sound/pci/hda/patch_hdmi.c > +++ b/sound/pci/hda/patch_hdmi.c > @@ -2158,8 +2158,10 @@ static int add_acomp_jack_kctl(struct hda_codec *codec, > if (err < 0) > return err; > per_pin->acomp_jack = jack; > - jack->private_data = per_pin; > - jack->private_free = free_acomp_jack_priv; > + if (jack) { > + jack->private_data = per_pin; > + jack->private_free = free_acomp_jack_priv; > + } > return 0; > } > Looks good to me. Acked-by: Arnd Bergmann