]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ALSA: hda: Add error check for snd_ctl_rename_id() in snd_hda_create_dig_out_ctls()
authorWentao Liang <vulab@iscas.ac.cn>
Thu, 13 Feb 2025 07:45:43 +0000 (15:45 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 7 Mar 2025 15:56:39 +0000 (16:56 +0100)
commit 822b7ec657e99b44b874e052d8540d8b54fe8569 upstream.

Check the return value of snd_ctl_rename_id() in
snd_hda_create_dig_out_ctls(). Ensure that failures
are properly handled.

[ Note: the error cannot happen practically because the only error
  condition in snd_ctl_rename_id() is the missing ID, but this is a
  rename, hence it must be present.  But for the code consistency,
  it's safer to have always the proper return check -- tiwai ]

Fixes: 5c219a340850 ("ALSA: hda: Fix kctl->id initialization")
Cc: stable@vger.kernel.org # 6.4+
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
Link: https://patch.msgid.link/20250213074543.1620-1-vulab@iscas.ac.cn
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/pci/hda/hda_codec.c

index bd19f92aeeec8914d09e9e3a39fed454de9fe3d3..9d7d99b584fe517d34727ad6d8e6afb14bcf07ca 100644 (file)
@@ -2465,7 +2465,9 @@ int snd_hda_create_dig_out_ctls(struct hda_codec *codec,
                                break;
                        id = kctl->id;
                        id.index = spdif_index;
-                       snd_ctl_rename_id(codec->card, &kctl->id, &id);
+                       err = snd_ctl_rename_id(codec->card, &kctl->id, &id);
+                       if (err < 0)
+                               return err;
                }
                bus->primary_dig_out_type = HDA_PCM_TYPE_HDMI;
        }