All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joe Perches <joe@perches.com>
To: Julia Lawall <julia.lawall@lip6.fr>
Cc: cocci <cocci@systeme.lip6.fr>, LKML <linux-kernel@vger.kernel.org>
Subject: Re: [Fwd: [PATCH 1/2] string: Add stracpy and stracpy_pad mechanisms]
Date: Tue, 23 Jul 2019 16:42:19 -0700	[thread overview]
Message-ID: <0f3ba090dfc956f5651e6c7c430abdba94ddcb8b.camel@perches.com> (raw)
In-Reply-To: <alpine.DEB.2.21.1907231546090.2551@hadrien>

On Tue, 2019-07-23 at 15:52 -0500, Julia Lawall wrote:
> On Mon, 22 Jul 2019, Joe Perches wrote:
> > I just sent a patch to add yet another string copy mechanism.
> > 
> > This could help avoid misuses of strscpy and strlcpy like this
> > patch set:
> > 
> > https://lore.kernel.org/lkml/cover.1562283944.git.joe@perches.com/T/
> > 
> > A possible cocci script to do conversions could be:
> > 
> >    $ cat str.cpy.cocci
> >    @@
> >    expression e1;
> >    expression e2;
> >    @@
> > 
> >    - strscpy(e1, e2, sizeof(e1))
> >    + stracpy(e1, e2)
> > 
> >    @@
> >    expression e1;
> >    expression e2;
> >    @@
> > 
> >    - strlcpy(e1, e2, sizeof(e1))
> >    + stracpy(e1, e2)
> > 
> > This obviously does not match the style of all the
> > scripts/coccinelle cocci files, but this might be
> > something that could be added improved and added.
> > 
> > This script produces:
> > 
> > $ spatch --in-place -sp-file str.cpy.cocci .
> > $ git checkout tools/
> > $ git diff --shortstat
> >  958 files changed, 2179 insertions(+), 2655 deletions(-)
> > 
> > The remainder of strlcpy and strscpy uses in the
> > kernel would generally have a form like:
> > 
> > 	strlcpy(to, from, DEFINE)
> > 
> > where DEFINE is the specified size of to
> > 
> > Could the cocci script above be updated to find
> > and correct those styles as well?
> 
> I guess it would depend on what "to" is and what DEFINE expands into.  For
> example, in cpuidle-powernv.c, I see:
> 
> strlcpy(powernv_states[index].name, name, CPUIDLE_NAME_LEN);
> 
> and by poking around I see:
> 
> struct cpuidle_state {
> 	char		name[CPUIDLE_NAME_LEN];
> 	char		desc[CPUIDLE_DESC_LEN];
> 	...
> };

Yes, ideally this case would not modify the #define for the
length but adapt the strlcpy(,,DEFINE)

There are a lot of these in drivers/hwmon using I2C_NAME_SIZE.

> I will look into it.

Thanks.



WARNING: multiple messages have this Message-ID (diff)
From: Joe Perches <joe@perches.com>
To: Julia Lawall <julia.lawall@lip6.fr>
Cc: cocci <cocci@systeme.lip6.fr>, LKML <linux-kernel@vger.kernel.org>
Subject: Re: [Cocci] [Fwd: [PATCH 1/2] string: Add stracpy and stracpy_pad mechanisms]
Date: Tue, 23 Jul 2019 16:42:19 -0700	[thread overview]
Message-ID: <0f3ba090dfc956f5651e6c7c430abdba94ddcb8b.camel@perches.com> (raw)
In-Reply-To: <alpine.DEB.2.21.1907231546090.2551@hadrien>

On Tue, 2019-07-23 at 15:52 -0500, Julia Lawall wrote:
> On Mon, 22 Jul 2019, Joe Perches wrote:
> > I just sent a patch to add yet another string copy mechanism.
> > 
> > This could help avoid misuses of strscpy and strlcpy like this
> > patch set:
> > 
> > https://lore.kernel.org/lkml/cover.1562283944.git.joe@perches.com/T/
> > 
> > A possible cocci script to do conversions could be:
> > 
> >    $ cat str.cpy.cocci
> >    @@
> >    expression e1;
> >    expression e2;
> >    @@
> > 
> >    - strscpy(e1, e2, sizeof(e1))
> >    + stracpy(e1, e2)
> > 
> >    @@
> >    expression e1;
> >    expression e2;
> >    @@
> > 
> >    - strlcpy(e1, e2, sizeof(e1))
> >    + stracpy(e1, e2)
> > 
> > This obviously does not match the style of all the
> > scripts/coccinelle cocci files, but this might be
> > something that could be added improved and added.
> > 
> > This script produces:
> > 
> > $ spatch --in-place -sp-file str.cpy.cocci .
> > $ git checkout tools/
> > $ git diff --shortstat
> >  958 files changed, 2179 insertions(+), 2655 deletions(-)
> > 
> > The remainder of strlcpy and strscpy uses in the
> > kernel would generally have a form like:
> > 
> > 	strlcpy(to, from, DEFINE)
> > 
> > where DEFINE is the specified size of to
> > 
> > Could the cocci script above be updated to find
> > and correct those styles as well?
> 
> I guess it would depend on what "to" is and what DEFINE expands into.  For
> example, in cpuidle-powernv.c, I see:
> 
> strlcpy(powernv_states[index].name, name, CPUIDLE_NAME_LEN);
> 
> and by poking around I see:
> 
> struct cpuidle_state {
> 	char		name[CPUIDLE_NAME_LEN];
> 	char		desc[CPUIDLE_DESC_LEN];
> 	...
> };

Yes, ideally this case would not modify the #define for the
length but adapt the strlcpy(,,DEFINE)

There are a lot of these in drivers/hwmon using I2C_NAME_SIZE.

> I will look into it.

Thanks.


_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

  reply	other threads:[~2019-07-23 23:42 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-23  0:38 [PATCH 0/2] string: Add stracpy and stracpy_pad Joe Perches
2019-07-23  0:38 ` [PATCH 1/2] string: Add stracpy and stracpy_pad mechanisms Joe Perches
2019-07-23  0:46   ` [Cocci] [Fwd: [PATCH 1/2] string: Add stracpy and stracpy_pad mechanisms] Joe Perches
2019-07-23 20:52     ` Julia Lawall
2019-07-23 20:52       ` [Cocci] " Julia Lawall
2019-07-23 23:42       ` Joe Perches [this message]
2019-07-23 23:42         ` Joe Perches
2019-07-24  3:54         ` Julia Lawall
2019-07-24  3:54           ` [Cocci] " Julia Lawall
2019-07-24  4:19           ` Joe Perches
2019-07-24  4:19             ` [Cocci] " Joe Perches
2019-07-24  4:27             ` Julia Lawall
2019-07-24  4:27               ` [Cocci] " Julia Lawall
2019-07-24  4:37               ` Joe Perches
2019-07-24  4:37                 ` [Cocci] " Joe Perches
2019-07-24 10:28                 ` David Laight
2019-07-24 10:28                   ` [Cocci] " David Laight
2019-07-24 10:43                   ` Joe Perches
2019-07-24 10:43                     ` [Cocci] " Joe Perches
2019-07-24 11:45                     ` Julia Lawall
2019-07-24 11:45                       ` [Cocci] " Julia Lawall
2019-07-25  1:42                     ` Julia Lawall
2019-07-25  1:42                       ` [Cocci] " Julia Lawall
2019-07-25  7:46                       ` [PATCH 1/2] string: Add stracpy and stracpy_pad mechanisms Markus Elfring
2019-07-25  7:46                         ` [Cocci] " Markus Elfring
2019-07-25  7:46                         ` Markus Elfring
2019-07-25 11:34                         ` Julia Lawall
2019-07-25 11:34                           ` [Cocci] " Julia Lawall
2019-07-25 11:34                           ` Julia Lawall
2019-07-25 12:40                           ` [1/2] " Markus Elfring
2019-07-25 12:40                             ` [Cocci] " Markus Elfring
2019-07-25 12:40                             ` Markus Elfring
2019-07-25 13:45                       ` [PATCH 1/2] " Markus Elfring
2019-07-25 13:45                         ` [Cocci] " Markus Elfring
2019-07-25 13:45                         ` Markus Elfring
2019-07-25 13:48                         ` Julia Lawall
2019-07-25 13:48                           ` [Cocci] " Julia Lawall
2019-07-25 13:48                           ` Julia Lawall
2019-07-25 14:48                           ` [1/2] " Markus Elfring
2019-07-25 14:48                             ` [Cocci] " Markus Elfring
2019-07-25 14:48                             ` Markus Elfring
2019-07-25 13:50                       ` [Fwd: [PATCH 1/2] string: Add stracpy and stracpy_pad mechanisms] Joe Perches
2019-07-25 13:50                         ` [Cocci] " Joe Perches
2019-07-25 13:58                         ` Julia Lawall
2019-07-25 13:58                           ` [Cocci] " Julia Lawall
2019-07-25 14:12                           ` Joe Perches
2019-07-25 14:12                             ` [Cocci] " Joe Perches
2019-07-25 22:51                             ` Julia Lawall
2019-07-25 22:51                               ` [Cocci] " Julia Lawall
2019-07-26  6:15                               ` [1/2] string: Add stracpy and stracpy_pad mechanisms Markus Elfring
2019-07-26  6:15                                 ` [Cocci] " Markus Elfring
2019-07-26  6:15                                 ` Markus Elfring
2019-07-29 14:07                             ` [Fwd: [PATCH 1/2] string: Add stracpy and stracpy_pad mechanisms] Julia Lawall
2019-07-29 14:07                               ` [Cocci] " Julia Lawall
2019-07-29 16:28                               ` Joe Perches
2019-07-29 16:28                                 ` [Cocci] " Joe Perches
2019-07-23  4:35   ` [PATCH 1/2] string: Add stracpy and stracpy_pad mechanisms Andrew Morton
2019-07-23  4:42     ` Joe Perches
2019-07-23  4:42       ` Joe Perches
2019-07-23 21:29       ` Kees Cook
2019-07-23  6:55   ` Rasmus Villemoes
2019-07-23 15:41     ` David Laight
2019-07-23 15:41       ` David Laight
2019-07-23 15:50       ` Joe Perches
2019-07-23 15:50         ` Joe Perches
2019-07-23 21:34       ` Kees Cook
2019-07-23 21:34         ` Kees Cook
2019-07-24 12:05       ` Yann Droneaud
2019-07-24 12:05         ` Yann Droneaud
2019-07-24 13:09         ` Rasmus Villemoes
2019-07-24 13:09           ` Rasmus Villemoes
2019-07-24 17:08           ` Linus Torvalds
2019-07-24 17:08             ` Linus Torvalds
2019-07-25 20:03             ` Kees Cook
2019-07-25 20:03               ` Kees Cook
2019-07-26  2:46               ` Joe Perches
2019-07-26  2:46                 ` Joe Perches
2019-07-23 21:36   ` Kees Cook
2019-07-24 11:40     ` Joe Perches
2019-07-24 11:40       ` Joe Perches
2019-07-23  0:38 ` [PATCH 2/2] kernel-doc: core-api: Include string.h into core-api Joe Perches
2019-07-23 21:28   ` Kees Cook

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0f3ba090dfc956f5651e6c7c430abdba94ddcb8b.camel@perches.com \
    --to=joe@perches.com \
    --cc=cocci@systeme.lip6.fr \
    --cc=julia.lawall@lip6.fr \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.