Linux CAN drivers development
 help / color / mirror / Atom feed
* [PATCH net-next] drivers/net/can/usb/kvaser_usb: User strscpy() to copy device name
@ 2026-06-06 20:26 david.laight.linux
  2026-06-06 21:16 ` Vincent Mailhol
  0 siblings, 1 reply; 3+ messages in thread
From: david.laight.linux @ 2026-06-06 20:26 UTC (permalink / raw)
  To: Kees Cook, linux-hardening, Arnd Bergmann, linux-can,
	linux-kernel
  Cc: Marc Kleine-Budde, Vincent Mailhol, David Laight

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


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH net-next] drivers/net/can/usb/kvaser_usb: User strscpy() to copy device name
  2026-06-06 20:26 [PATCH net-next] drivers/net/can/usb/kvaser_usb: User strscpy() to copy device name david.laight.linux
@ 2026-06-06 21:16 ` Vincent Mailhol
  2026-06-07  8:40   ` David Laight
  0 siblings, 1 reply; 3+ messages in thread
From: Vincent Mailhol @ 2026-06-06 21:16 UTC (permalink / raw)
  To: david.laight.linux, Kees Cook, linux-hardening, Arnd Bergmann,
	linux-can, linux-kernel
  Cc: Marc Kleine-Budde

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


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH net-next] drivers/net/can/usb/kvaser_usb: User strscpy() to copy device name
  2026-06-06 21:16 ` Vincent Mailhol
@ 2026-06-07  8:40   ` David Laight
  0 siblings, 0 replies; 3+ messages in thread
From: David Laight @ 2026-06-07  8:40 UTC (permalink / raw)
  To: Vincent Mailhol
  Cc: Kees Cook, linux-hardening, Arnd Bergmann, linux-can,
	linux-kernel, Marc Kleine-Budde

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
> 


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-06-07  8:40 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-06 20:26 [PATCH net-next] drivers/net/can/usb/kvaser_usb: User strscpy() to copy device name david.laight.linux
2026-06-06 21:16 ` Vincent Mailhol
2026-06-07  8:40   ` David Laight

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox