Coccinelle Archive on lore.kernel.org
 help / color / Atom feed
From: Joe Perches <joe@perches.com>
To: Julia Lawall <julia.lawall@lip6.fr>, cocci <cocci@systeme.lip6.fr>
Cc: LKML <linux-kernel@vger.kernel.org>
Subject: [Cocci] [Fwd: [PATCH 1/2] string: Add stracpy and stracpy_pad mechanisms]
Date: Mon, 22 Jul 2019 17:46:27 -0700
Message-ID: <66fcdbf607d7d0bea41edb39e5579d63b62b7d84.camel@perches.com> (raw)
In-Reply-To: <7ab8957eaf9b0931a59eff6e2bd8c5169f2f6c41.1563841972.git.joe@perches.com>


[-- Attachment #1: Type: text/plain, Size: 1086 bytes --]

Hello Julia.

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?

cheers, Joe

[-- Attachment #2: Forwarded message — [PATCH 1/2] string: Add stracpy and stracpy_pad mechanisms --]
[-- Type: message/rfc822, Size: 6380 bytes --]

[-- Attachment #3: Type: text/plain, Size: 136 bytes --]

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

       reply index

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <7ab8957eaf9b0931a59eff6e2bd8c5169f2f6c41.1563841972.git.joe@perches.com>
2019-07-23  0:46 ` Joe Perches [this message]
2019-07-23 20:52   ` Julia Lawall
2019-07-23 23:42     ` Joe Perches
2019-07-24  3:54       ` Julia Lawall
2019-07-24  4:19         ` Joe Perches
2019-07-24  4:27           ` Julia Lawall
2019-07-24  4:37             ` Joe Perches
2019-07-24 10:28               ` David Laight
2019-07-24 10:43                 ` Joe Perches
2019-07-24 11:45                   ` Julia Lawall
2019-07-25  1:42                   ` Julia Lawall
2019-07-25  7:46                     ` [Cocci] [PATCH 1/2] string: Add stracpy and stracpy_pad mechanisms Markus Elfring
2019-07-25 11:34                       ` Julia Lawall
2019-07-25 12:40                         ` [Cocci] [1/2] " Markus Elfring
2019-07-25 13:45                     ` [Cocci] [PATCH 1/2] " Markus Elfring
2019-07-25 13:48                       ` Julia Lawall
2019-07-25 14:48                         ` [Cocci] [1/2] " Markus Elfring
2019-07-25 13:50                     ` [Cocci] [Fwd: [PATCH 1/2] string: Add stracpy and stracpy_pad mechanisms] Joe Perches
2019-07-25 13:58                       ` Julia Lawall
2019-07-25 14:12                         ` Joe Perches
2019-07-25 22:51                           ` Julia Lawall
2019-07-26  6:15                             ` [Cocci] [1/2] string: Add stracpy and stracpy_pad mechanisms Markus Elfring
2019-07-29 14:07                           ` [Cocci] [Fwd: [PATCH 1/2] string: Add stracpy and stracpy_pad mechanisms] Julia Lawall
2019-07-29 16:28                             ` Joe Perches

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=66fcdbf607d7d0bea41edb39e5579d63b62b7d84.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

Coccinelle Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/cocci/0 cocci/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 cocci cocci/ https://lore.kernel.org/cocci \
		cocci@systeme.lip6.fr
	public-inbox-index cocci

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/fr.lip6.systeme.cocci


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git