ALSA: hda - check NULL pointer when creating SPDIF PCM switch
If the new control cannot be created, this function will return to avoid snd_hda_ctl_add dereferencing a NULL control pointer. Signed-off-by: Mengdong Lin <mengdong.lin@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
25336e8ae2
commit
4c7a548a70
|
@ -3433,11 +3433,16 @@ static struct snd_kcontrol_new spdif_share_sw = {
|
|||
int snd_hda_create_spdif_share_sw(struct hda_codec *codec,
|
||||
struct hda_multi_out *mout)
|
||||
{
|
||||
struct snd_kcontrol *kctl;
|
||||
|
||||
if (!mout->dig_out_nid)
|
||||
return 0;
|
||||
|
||||
kctl = snd_ctl_new1(&spdif_share_sw, mout);
|
||||
if (!kctl)
|
||||
return -ENOMEM;
|
||||
/* ATTENTION: here mout is passed as private_data, instead of codec */
|
||||
return snd_hda_ctl_add(codec, mout->dig_out_nid,
|
||||
snd_ctl_new1(&spdif_share_sw, mout));
|
||||
return snd_hda_ctl_add(codec, mout->dig_out_nid, kctl);
|
||||
}
|
||||
EXPORT_SYMBOL_HDA(snd_hda_create_spdif_share_sw);
|
||||
|
||||
|
|
Loading…
Reference in a new issue