2021-01-09 13:30:35

by B K Karthik

[permalink] [raw]
Subject: [PATCH] staging: greybus: audio_helper.c: Replace strlcpy() with strscpy()

In gbaudio_remove_controls() , replace the usage of strlcpy() with
strscpy() because strlcpy() only limits the *destination*
size, and the source is always read fully.

https://lore.kernel.org/r/CAHk-=wgfRnXz0W3D37d01q3JFkr_i_uTL=V6A6G1oUZcprmknw@mail.gmail.com/
was quoted by checkpatch while showing this warning.

Signed-off-by: B K Karthik <[email protected]>
---
drivers/staging/greybus/audio_helper.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/greybus/audio_helper.c b/drivers/staging/greybus/audio_helper.c
index 3011b8abce38..1ed4772d2771 100644
--- a/drivers/staging/greybus/audio_helper.c
+++ b/drivers/staging/greybus/audio_helper.c
@@ -166,7 +166,7 @@ static int gbaudio_remove_controls(struct snd_card *card, struct device *dev,
snprintf(id.name, sizeof(id.name), "%s %s", prefix,
control->name);
else
- strlcpy(id.name, control->name, sizeof(id.name));
+ strscpy(id.name, control->name, sizeof(id.name));
id.numid = 0;
id.iface = control->iface;
id.device = control->device;
--
2.17.1


Attachments:
(No filename) (1.08 kB)
signature.asc (673.00 B)
Download all attachments

2021-01-27 23:55:53

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] staging: greybus: audio_helper.c: Replace strlcpy() with strscpy()

On Sat, Jan 09, 2021 at 06:57:31PM +0530, B K Karthik wrote:
> In gbaudio_remove_controls() , replace the usage of strlcpy() with
> strscpy() because strlcpy() only limits the *destination*
> size, and the source is always read fully.
>
> https://lore.kernel.org/r/CAHk-=wgfRnXz0W3D37d01q3JFkr_i_uTL=V6A6G1oUZcprmknw@mail.gmail.com/
> was quoted by checkpatch while showing this warning.
>
> Signed-off-by: B K Karthik <[email protected]>
> ---
> drivers/staging/greybus/audio_helper.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/staging/greybus/audio_helper.c b/drivers/staging/greybus/audio_helper.c
> index 3011b8abce38..1ed4772d2771 100644
> --- a/drivers/staging/greybus/audio_helper.c
> +++ b/drivers/staging/greybus/audio_helper.c
> @@ -166,7 +166,7 @@ static int gbaudio_remove_controls(struct snd_card *card, struct device *dev,
> snprintf(id.name, sizeof(id.name), "%s %s", prefix,
> control->name);
> else
> - strlcpy(id.name, control->name, sizeof(id.name));
> + strscpy(id.name, control->name, sizeof(id.name));

Is this something that matters here? Isn't the string coming from the
kernel (i.e. a trusted source), or if not, where is it coming from?

thanks,

greg k-h