Re: [PATCH v4] staging: wlan-ng: replace strncpy() with strscpy()

From: Dan Carpenter
Date: Fri Oct 13 2023 - 06:00:10 EST


On Fri, Oct 13, 2023 at 12:54:26PM +0300, Calvince Otieno wrote:
> Checkpatch suggests the use of strscpy() instead of strncpy().
> The advantages are that it always adds a NUL terminator and it prevents
> a read overflow if the src string is not properly terminated. One
> potential disadvantage is that it doesn't zero pad the string like
> strncpy() does.
>
> In this code, strscpy() and strncpy() are equivalent and it does not
> affect runtime behavior. The string is zeroed on the line before
> using memset(). The resulting string was always NUL terminated and
> PRISM2_USB_FWFILE is string literal "prism2_ru.fw" so it's NUL
> terminated.
>
> However, even though using strscpy() does not fix any bugs, it's
> still nicer and makes checkpatch happy.
>
> Signed-off-by: Calvince Otieno <calvncce@xxxxxxxxx>
> ---
> Patch version v4:
> Provide a valid description of the patch

Good.

However, you've still included the v1 patch... See below. Don't do
that.

regards,
dan carpenter

> Patch version v1:
> Replacing strncpy() with strscpy()
>
> drivers/staging/wlan-ng/prism2fw.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/staging/wlan-ng/prism2fw.c b/drivers/staging/wlan-ng/prism2fw.c
> index 5d03b2b9aab4..57a99dd12143 100644
> --- a/drivers/staging/wlan-ng/prism2fw.c
> +++ b/drivers/staging/wlan-ng/prism2fw.c
> @@ -725,7 +725,7 @@ static int plugimage(struct imgchunk *fchunk, unsigned int nfchunks,
>
> if (j == -1) { /* plug the filename */
> memset(dest, 0, s3plug[i].len);
> - strncpy(dest, PRISM2_USB_FWFILE, s3plug[i].len - 1);
> + strscpy(dest, PRISM2_USB_FWFILE, s3plug[i].len - 1);
> } else { /* plug a PDR */
> memcpy(dest, &pda->rec[j]->data, s3plug[i].len);
> }
>
> --
> Calvince Otieno
>