Re: [PATCH] net/smc: replace strncpy with strscpy

Simon Horman
2025-06-18T10:50:44Z

On Tue, Jun 17, 2025 at 05:55:12PM +0530, Pranav Tyagi wrote:
> Replace the deprecated strncpy() with strscpy() as the destination
> buffer should be NUL-terminated and does not require any trailing
> NUL-padding.
>
> Signed-off-by: Pranav Tyagi <pranav.tyagi03@gmail.com>
> ---
> net/smc/smc_pnet.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/smc/smc_pnet.c b/net/smc/smc_pnet.c
> index b391c2ef463f..b70e1f3179c5 100644
> --- a/net/smc/smc_pnet.c
> +++ b/net/smc/smc_pnet.c
> @@ -370,7 +370,7 @@ static int smc_pnet_add_eth(struct smc_pnettable *pnettable, struct net *net,
> goto out_put;
> new_pe->type = SMC_PNET_ETH;
> memcpy(new_pe->pnet_name, pnet_name, SMC_MAX_PNETID_LEN);
> - strncpy(new_pe->eth_name, eth_name, IFNAMSIZ);
> + strscpy(new_pe->eth_name, eth_name, IFNAMSIZ);

Hi Pranav,

I think that because strscpy always results in a NULL terminated string
the length argument can be increased by one to IFNAMSIZ + 1, matching
the size of the destination.

But I also think that we can handle this automatically by switching
to the two-argument version of strscpy() because the destination is an
array.

strscpy(new_pe->eth_name, eth_name);

> rc = -EEXIST;
> new_netdev = true;
> mutex_lock(&pnettable->lock);
> --
> 2.49.0
>

--
pw-bot: changes-requested