]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ALSA: gus: check snd_ctl_new1() return value
authorZhao Dongdong <zhaodongdong@kylinos.cn>
Wed, 27 May 2026 12:09:10 +0000 (20:09 +0800)
committerTakashi Iwai <tiwai@suse.de>
Thu, 28 May 2026 07:35:21 +0000 (09:35 +0200)
snd_ctl_new1() can return NULL when memory allocation fails.
snd_gf1_pcm_volume_control() does not check the return value before
dereferencing kctl->id.index, which can lead to a NULL pointer
dereference.

Add a NULL check after snd_ctl_new1() and return -ENOMEM if it fails.

Assisted-by: Opencode:DeepSeek-V4-Flash
Cc: stable@vger.kernel.org
Fixes: c5ae57b1bb99 ("ALSA: gus: Fix kctl->id initialization")
Signed-off-by: Zhao Dongdong <zhaodongdong@kylinos.cn>
Link: https://patch.msgid.link/tencent_F644A3DCAD32945D62DB2FEEBE8A996F6809@qq.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/isa/gus/gus_pcm.c

index a0757e1ede465c352dfab854a3068bdac9c3563b..08ccb4d80adeb13a647f85f76b23f233bf91df7c 100644 (file)
@@ -851,6 +851,8 @@ int snd_gf1_pcm_new(struct snd_gus_card *gus, int pcm_dev, int control_index)
                kctl = snd_ctl_new1(&snd_gf1_pcm_volume_control1, gus);
        else
                kctl = snd_ctl_new1(&snd_gf1_pcm_volume_control, gus);
+       if (!kctl)
+               return -ENOMEM;
        kctl->id.index = control_index;
        err = snd_ctl_add(card, kctl);
        if (err < 0)