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
next prev parent 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: linkBe 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.