]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ALSA: usb: qcom: fix NULL pointer dereference in qmi_stop_session
authorPei Xiao <xiaopei01@kylinos.cn>
Tue, 24 Jun 2025 09:00:47 +0000 (17:00 +0800)
committerTakashi Iwai <tiwai@suse.de>
Wed, 25 Jun 2025 06:28:16 +0000 (08:28 +0200)
The find_substream() call may return NULL, but the error path
dereferenced 'subs' unconditionally via dev_err(&subs->dev->dev, ...),
causing a NULL pointer dereference when subs is NULL.

Fix by switching to &uadev[idx].udev->dev which is always valid
in this context.

Signed-off-by: Pei Xiao <xiaopei01@kylinos.cn>
Link: https://patch.msgid.link/86ac2939273ac853535049e60391c09d7688714e.1750755508.git.xiaopei01@kylinos.cn
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/qcom/qc_audio_offload.c

index 797afd4561bd0c1541fa4cd1cb4ace1812863a00..3543b5a535927a6cfd8b54d03bb057910c468b64 100644 (file)
@@ -759,7 +759,7 @@ static void qmi_stop_session(void)
                        subs = find_substream(pcm_card_num, info->pcm_dev_num,
                                              info->direction);
                        if (!subs || !chip || atomic_read(&chip->shutdown)) {
-                               dev_err(&subs->dev->dev,
+                               dev_err(&uadev[idx].udev->dev,
                                        "no sub for c#%u dev#%u dir%u\n",
                                        info->pcm_card_num,
                                        info->pcm_dev_num,