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]>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.