[PATCH net-next] drivers/net/can/usb/kvaser_usb: User strscpy() to copy device name

david.laight.linux@gmail.com posted 1 patch 1 day, 7 hours ago
drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH net-next] drivers/net/can/usb/kvaser_usb: User strscpy() to copy device name
Posted by david.laight.linux@gmail.com 1 day, 7 hours ago
From: David Laight <david.laight.linux@gmail.com>

Signed-off-by: David Laight <david.laight.linux@gmail.com>
---
This is one of a group of patches that remove potentially unbounded
strcpy() calls.

They are mostly replaced by strscpy() or, when strlen() has just been
called, with memcpy() (usually including the '\0').

Calls with copy string literals into arrays are left unchanged.
They are safe and easily detected as such.

The changes were made by getting the compiler to detect the calls and
then fixing the code by hand.

Note that all the changes are only compile tested.

Some Makefiles were changed to allow files to contain strcpy().
As well as 'difficult to fix' files, this included 'show' functions
as they really need to use sysfs_emit() or seq_printf().

All the patches are being sent individually to avoid very long cc lists.
Apologies for the terse commit messages and likely unexpected tags.
(There are about 100 patches in total.)

 drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c b/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c
index e09d663e362f..2cd58e825e0e 100644
--- a/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c
+++ b/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c
@@ -746,7 +746,7 @@ static int kvaser_usb_hydra_map_channel(struct kvaser_usb *dev, u16 transid,
 	if (!cmd)
 		return -ENOMEM;
 
-	strcpy(cmd->map_ch_req.name, name);
+	strscpy(cmd->map_ch_req.name, name);
 	cmd->header.cmd_no = CMD_MAP_CHANNEL_REQ;
 	kvaser_usb_hydra_set_cmd_dest_he
 				(cmd, KVASER_USB_HYDRA_HE_ADDRESS_ROUTER);
-- 
2.39.5
Re: [PATCH net-next] drivers/net/can/usb/kvaser_usb: User strscpy() to copy device name
Posted by Vincent Mailhol 1 day, 7 hours ago
Subject [PATCH net-next] drivers/net/can/usb/kvaser_usb: User strscpy() to copy device name
                                                         ^^^^
Use?

On 06/06/2026 at 22:26, david.laight.linux@gmail.com wrote:
> From: David Laight <david.laight.linux@gmail.com>
> 
> Signed-off-by: David Laight <david.laight.linux@gmail.com>
> ---
> This is one of a group of patches that remove potentially unbounded
> strcpy() calls.
> 
> They are mostly replaced by strscpy() or, when strlen() has just been
> called, with memcpy() (usually including the '\0').
> 
> Calls with copy string literals into arrays are left unchanged.
> They are safe and easily detected as such.
> 
> The changes were made by getting the compiler to detect the calls and
> then fixing the code by hand.
> 
> Note that all the changes are only compile tested.
> 
> Some Makefiles were changed to allow files to contain strcpy().
> As well as 'difficult to fix' files, this included 'show' functions
> as they really need to use sysfs_emit() or seq_printf().
> 
> All the patches are being sent individually to avoid very long cc lists.
> Apologies for the terse commit messages and likely unexpected tags.
> (There are about 100 patches in total.)

Indeed, this is terse. The commit body is empty (all your comments are
below the --- cutter) and the subject line contains a typo.

I don't see why the fact that you are sending many fixes clears you
from writing a proper commit message. And I would expect at least a
small effort to customize the message: only explain the Makefile stuff
for the patches which are touching a Makefile.

>  drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c b/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c
> index e09d663e362f..2cd58e825e0e 100644
> --- a/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c
> +++ b/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c
> @@ -746,7 +746,7 @@ static int kvaser_usb_hydra_map_channel(struct kvaser_usb *dev, u16 transid,
>  	if (!cmd)
>  		return -ENOMEM;
>  
> -	strcpy(cmd->map_ch_req.name, name);
> +	strscpy(cmd->map_ch_req.name, name);
>  	cmd->header.cmd_no = CMD_MAP_CHANNEL_REQ;
>  	kvaser_usb_hydra_set_cmd_dest_he
>  				(cmd, KVASER_USB_HYDRA_HE_ADDRESS_ROUTER);


Yours sincerely,
Vincent Mailhol
Re: [PATCH net-next] drivers/net/can/usb/kvaser_usb: User strscpy() to copy device name
Posted by David Laight 19 hours ago
On Sat, 6 Jun 2026 23:16:47 +0200
Vincent Mailhol <mailhol@kernel.org> wrote:

> Subject [PATCH net-next] drivers/net/can/usb/kvaser_usb: User strscpy() to copy device name
>                                                          ^^^^
> Use?

I'd forgotten I needed to fix that typo before sending the emails.
git makes it hard to change the commit text itself.

> 
> On 06/06/2026 at 22:26, david.laight.linux@gmail.com wrote:
> > From: David Laight <david.laight.linux@gmail.com>
> > 
> > Signed-off-by: David Laight <david.laight.linux@gmail.com>
> > ---
> > This is one of a group of patches that remove potentially unbounded
> > strcpy() calls.
> > 
> > They are mostly replaced by strscpy() or, when strlen() has just been
> > called, with memcpy() (usually including the '\0').
> > 
> > Calls with copy string literals into arrays are left unchanged.
> > They are safe and easily detected as such.
> > 
> > The changes were made by getting the compiler to detect the calls and
> > then fixing the code by hand.
> > 
> > Note that all the changes are only compile tested.
> > 
> > Some Makefiles were changed to allow files to contain strcpy().
> > As well as 'difficult to fix' files, this included 'show' functions
> > as they really need to use sysfs_emit() or seq_printf().
> > 
> > All the patches are being sent individually to avoid very long cc lists.
> > Apologies for the terse commit messages and likely unexpected tags.
> > (There are about 100 patches in total.)  
> 
> Indeed, this is terse. The commit body is empty (all your comments are
> below the --- cutter) and the subject line contains a typo.
> 
> I don't see why the fact that you are sending many fixes clears you
> from writing a proper commit message. And I would expect at least a
> small effort to customize the message: only explain the Makefile stuff
> for the patches which are touching a Makefile.

Try it!
I changed about 150 files to get allmodconfig to build.
I only send patches for 45 of them (otherwise I hit a 500 email/day limit).
The next 45 are 'pending' and some of the uncommited changes are less trivial.
Spend 10 minutes sorting out each commit message and it is another 16 hours.

A few (like this one) are very terse - then I realised I can send slightly
longer commit messages by typing a multi-line argument to -m.

-- David

> 
> >  drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c b/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c
> > index e09d663e362f..2cd58e825e0e 100644
> > --- a/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c
> > +++ b/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c
> > @@ -746,7 +746,7 @@ static int kvaser_usb_hydra_map_channel(struct kvaser_usb *dev, u16 transid,
> >  	if (!cmd)
> >  		return -ENOMEM;
> >  
> > -	strcpy(cmd->map_ch_req.name, name);
> > +	strscpy(cmd->map_ch_req.name, name);
> >  	cmd->header.cmd_no = CMD_MAP_CHANNEL_REQ;
> >  	kvaser_usb_hydra_set_cmd_dest_he
> >  				(cmd, KVASER_USB_HYDRA_HE_ADDRESS_ROUTER);  
> 
> 
> Yours sincerely,
> Vincent Mailhol
>