diff mbox series

[v2] ALSA: hda: Add error check for snd_ctl_rename_id() in snd_hda_create_dig_out_ctls()

Message ID 20250213074543.1620-1-vulab@iscas.ac.cn (mailing list archive)
State New
Headers show
Series [v2] ALSA: hda: Add error check for snd_ctl_rename_id() in snd_hda_create_dig_out_ctls() | expand

Commit Message

Wentao Liang Feb. 13, 2025, 7:45 a.m. UTC
Check the return value of snd_ctl_rename_id() in
snd_hda_create_dig_out_ctls(). Ensure that failures
are properly handled.

Fixes: 5c219a340850 ("ALSA: hda: Fix kctl->id initialization")
Cc: stable@vger.kernel.org # 6.4+
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
---
 sound/pci/hda/hda_codec.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Markus Elfring Feb. 13, 2025, 8:23 a.m. UTC | #1
> ---
>  sound/pci/hda/hda_codec.c | 4 +++-
…

How do you think about to improve also your version management?
https://lore.kernel.org/all/?q=%22This+looks+like+a+new+version+of+a+previously+submitted+patch%22
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.14-rc2#n780

Regards,
Markus
Takashi Iwai Feb. 14, 2025, 7:47 a.m. UTC | #2
On Thu, 13 Feb 2025 08:45:43 +0100,
Wentao Liang wrote:
> 
> Check the return value of snd_ctl_rename_id() in
> snd_hda_create_dig_out_ctls(). Ensure that failures
> are properly handled.
> 
> Fixes: 5c219a340850 ("ALSA: hda: Fix kctl->id initialization")
> Cc: stable@vger.kernel.org # 6.4+
> Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>

The error would never happen because this is a rename, and the only
error condition of snd_ctl_rename_id() is the lack of the control id.
But it's better to have a return check in the caller side, so I took
now.  Thanks.


Takashi
diff mbox series

Patch

diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 14763c0f31ad..46a220404999 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -2470,7 +2470,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;
 	}