Re: [PATCH] can: bcm: Replace strcpy() with strscpy(), simplify call
Ethan Carter Edwards <[email protected]>
| Newsgroups | org.kernel.vger.kernel-janitors,org.kernel.vger.linux-can,org.kernel.vger.linux-hardening,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <bt56uwgpxdtuocw6lwbnuwz5v32evruy6zx5cbp247cpsa3dbj@oy4zzozwandr> |
On 26/04/18 10:00PM, Ethan Carter Edwards wrote: > strcpy() is deprecated; use the safer strscpy() instead. > > While the src is char array at bcm_proc_getifname's call sites, the src > is passed to the function as a char*. Including the IFNAMSIZ length > makes the call safer. > > Use turnary over if/else to simplify code. > > Link: https://github.com/KSPP/linux/issues/88 > Signed-off-by: Ethan Carter Edwards <[email protected]> > --- > net/can/bcm.c | 5 +---- > 1 file changed, 1 insertion(+), 4 deletions(-) > > diff --git a/net/can/bcm.c b/net/can/bcm.c > index a4bef2c48a55..c133dab1202e 100644 > --- a/net/can/bcm.c > +++ b/net/can/bcm.c > @@ -196,10 +196,7 @@ static char *bcm_proc_getifname(struct net *net, char *result, int ifindex) > > rcu_read_lock(); > dev = dev_get_by_index_rcu(net, ifindex); > - if (dev) > - strcpy(result, dev->name); > - else > - strcpy(result, "???"); > + strscpy(result, dev ? dev->name : "???", IFNAMSIZ); On second thought: would it just be better here to do: if (dev) strscpy(result, dev->name, IFNAMSIZ); else memcpy(result, "???\0", 4); for the sake of compiler optimizations/speed? reading this: https://lore.kernel.org/lkml/20251023092046.4f556e0f@pumpkin/ I'm not sure. > rcu_read_unlock(); > > return result; > > --- > base-commit: c7275b05bc428c7373d97aa2da02d3a7fa6b9f66 > change-id: 20260418-can-bcm-strscpy-56a0e402a660 > > Best regards, > -- > Ethan Carter Edwards <[email protected]> >