net/smc/smc_pnet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
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
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
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
© 2016 - 2025 Red Hat, Inc.