Thread (3 messages) 3 messages, 2 authors, 2025-06-18

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

From: Pranav Tyagi <hidden>
Date: 2025-06-18 14:32:40
Also in: linux-kernel-mentees, linux-rdma, linux-s390, lkml

On Wed, Jun 18, 2025 at 4:20 PM Simon Horman [off-list ref] wrote:
On Tue, Jun 17, 2025 at 05:55:12PM +0530, Pranav Tyagi wrote:
quoted
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 <redacted>
---
 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);
quoted
      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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help