[PATCH] ALSA: intel_hdmi: Fix off-by-one error in __hdmi_lpe_audio_probe()

Thorsten Blum posted 1 patch 2 months ago
sound/x86/intel_hdmi_audio.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] ALSA: intel_hdmi: Fix off-by-one error in __hdmi_lpe_audio_probe()
Posted by Thorsten Blum 2 months ago
In __hdmi_lpe_audio_probe(), strscpy() is incorrectly called with the
length of the source string (excluding the NUL terminator) rather than
the size of the destination buffer. This results in one character less
being copied from 'card->shortname' to 'pcm->name'.

Since 'pcm->name' is a fixed-size buffer, we can safely omit the size
argument and let strscpy() infer it using sizeof(). This ensures the
card name is copied correctly.

Cc: stable@vger.kernel.org
Fixes: 75b1a8f9d62e ("ALSA: Convert strlcpy to strscpy when return value is unused")
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
---
 sound/x86/intel_hdmi_audio.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/x86/intel_hdmi_audio.c b/sound/x86/intel_hdmi_audio.c
index cc54539c6030..fbef0cbe8f1a 100644
--- a/sound/x86/intel_hdmi_audio.c
+++ b/sound/x86/intel_hdmi_audio.c
@@ -1765,7 +1765,7 @@ static int __hdmi_lpe_audio_probe(struct platform_device *pdev)
 		/* setup private data which can be retrieved when required */
 		pcm->private_data = ctx;
 		pcm->info_flags = 0;
-		strscpy(pcm->name, card->shortname, strlen(card->shortname));
+		strscpy(pcm->name, card->shortname);
 		/* setup the ops for playback */
 		snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &had_pcm_ops);
 
-- 
2.50.1
Re: [PATCH] ALSA: intel_hdmi: Fix off-by-one error in __hdmi_lpe_audio_probe()
Posted by Sakari Ailus 2 months ago
Hi Thorsten,

Thanks for the patch. 

On Tue, Aug 05, 2025 at 09:08:06PM +0200, Thorsten Blum wrote:
> In __hdmi_lpe_audio_probe(), strscpy() is incorrectly called with the
> length of the source string (excluding the NUL terminator) rather than
> the size of the destination buffer. This results in one character less
> being copied from 'card->shortname' to 'pcm->name'.
> 
> Since 'pcm->name' is a fixed-size buffer, we can safely omit the size
> argument and let strscpy() infer it using sizeof(). This ensures the
> card name is copied correctly.
> 
> Cc: stable@vger.kernel.org
> Fixes: 75b1a8f9d62e ("ALSA: Convert strlcpy to strscpy when return value is unused")
> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
> ---
>  sound/x86/intel_hdmi_audio.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/sound/x86/intel_hdmi_audio.c b/sound/x86/intel_hdmi_audio.c
> index cc54539c6030..fbef0cbe8f1a 100644
> --- a/sound/x86/intel_hdmi_audio.c
> +++ b/sound/x86/intel_hdmi_audio.c
> @@ -1765,7 +1765,7 @@ static int __hdmi_lpe_audio_probe(struct platform_device *pdev)
>  		/* setup private data which can be retrieved when required */
>  		pcm->private_data = ctx;
>  		pcm->info_flags = 0;
> -		strscpy(pcm->name, card->shortname, strlen(card->shortname));
> +		strscpy(pcm->name, card->shortname);

Could you use three arguments here for backporting -- the two-argument
variant is a rather new addition and looks like 75b1a8f9d62e precedes it.

>  		/* setup the ops for playback */
>  		snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &had_pcm_ops);
>  

-- 
Regards,

Sakari Ailus
Re: [PATCH] ALSA: intel_hdmi: Fix off-by-one error in __hdmi_lpe_audio_probe()
Posted by Thorsten Blum 1 month, 4 weeks ago
Hi Sakari,

On 6. Aug 2025, at 01:17, Sakari Ailus wrote:
> Could you use three arguments here for backporting -- the two-argument
> variant is a rather new addition and looks like 75b1a8f9d62e precedes it.

Thanks for the hint!

Best,
Thorsten