[PATCH] net/smc: replace strncpy with strscpy

Pranav Tyagi posted 1 patch 3 months, 3 weeks ago
There is a newer version of this series
net/smc/smc_pnet.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] net/smc: replace strncpy with strscpy
Posted by Pranav Tyagi 3 months, 3 weeks ago
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);
 	rc = -EEXIST;
 	new_netdev = true;
 	mutex_lock(&pnettable->lock);
-- 
2.49.0
Re: [PATCH] net/smc: replace strncpy with strscpy
Posted by Simon Horman 3 months, 3 weeks ago
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
Re: [PATCH] net/smc: replace strncpy with strscpy
Posted by Pranav Tyagi 3 months, 3 weeks ago
On Wed, Jun 18, 2025 at 4:20 PM Simon Horman <horms@kernel.org> wrote:
>
> 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

Hi,

Thanks for the feedback. Apologies for the oversight.
The size parameter should match the size of the destination.
Anyway, I will now use the two-argument version
send a v2.

Regards
Pranav Tyagi