All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joe Perches <joe@perches.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Tom Zanussi <zanussi@kernel.org>,
	tglx@linutronix.de, mhiramat@kernel.org, namhyung@kernel.org,
	vedang.patel@intel.com, bigeasy@linutronix.de,
	joel@joelfernandes.org, mathieu.desnoyers@efficios.com,
	julia@ni.com, linux-kernel@vger.kernel.org,
	linux-rt-users@vger.kernel.org
Subject: Re: [PATCH 2/7] tracing: Change strlen to sizeof for hist trigger static strings
Date: Wed, 19 Dec 2018 12:51:59 -0800	[thread overview]
Message-ID: <426609d1a7c8217187f18011add87ca4fdd54f1e.camel@perches.com> (raw)
In-Reply-To: <20181219153447.3684100d@gandalf.local.home>

On Wed, 2018-12-19 at 15:34 -0500, Steven Rostedt wrote:
> On Wed, 19 Dec 2018 12:22:38 -0800
> Joe Perches <joe@perches.com> wrote:
> 
> > On Wed, 2018-12-19 at 14:16 -0600, Tom Zanussi wrote:
> > > How's this?
> > > 
> > > [PATCH] tracing: Introduce and use strcmp_const() for hist triggers
> > > 
> > > Provide a new strcmp_const() macro and make use of it instead of the
> > > longer and more error-prone strncmp(str, "str", sizeof("str") - 1).  
> > []
> > > diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c  
> > []
> > > @@ -22,6 +22,9 @@
> > >  
> > >  #define STR_VAR_LEN_MAX		32 /* must be multiple of sizeof(u64) */
> > >  
> > > +#define strcmp_const(str, str_const) \
> > > +	strncmp(str, str_const, sizeof(str_const) - 1)  
> > 
> > Not good as it's too easy to pass a pointer as str_const
> > and sizeof(pointer) - 1 isn't likely the string length.
> 
> Agreed. And I noticed that this is used all over the kernel, so I'm not
> going to add this patch. I'm going to add a:
> 
> #define strncmp_prefix(str, prefix) \
> 	strncmp(str, prefix, strlen(prefix))
> 
> in include/linux/string.h
> 
> And go around and use that throughout the kernel. By doing a quick
> grep, I already spotted a few bugs.

I hope you also convert the existing uses like

	strncmp(str1, "str2", 4)

where the length value is precalculated to the strlen
of the const string

But there seem to be _a lot_ of those...

$ git grep -P "\bstrncmp\s*\([^,]+,[^,]+,\s*\d+\s*\)" | wc -l
1681



  reply	other threads:[~2018-12-19 20:52 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-18 20:33 [PATCH 0/7] tracing: Hist trigger var-ref cleanup and comments Tom Zanussi
2018-12-18 20:33 ` [PATCH 1/7] tracing: Remove unnecessary hist trigger struct field Tom Zanussi
2018-12-18 20:33 ` [PATCH 2/7] tracing: Change strlen to sizeof for hist trigger static strings Tom Zanussi
2018-12-19 19:40   ` Steven Rostedt
2018-12-19 19:46     ` Tom Zanussi
2018-12-19 20:16       ` Tom Zanussi
2018-12-19 20:22         ` Joe Perches
2018-12-19 20:34           ` Steven Rostedt
2018-12-19 20:51             ` Joe Perches [this message]
2018-12-19 21:03               ` Steven Rostedt
2018-12-19 20:28         ` Steven Rostedt
2018-12-19 20:20       ` Joe Perches
2018-12-19 20:30         ` Steven Rostedt
2018-12-19 20:38           ` Tom Zanussi
2018-12-19 21:01             ` Steven Rostedt
2018-12-19 21:08               ` Joe Perches
2018-12-19 20:27       ` Steven Rostedt
2018-12-19 20:27         ` Steven Rostedt
2018-12-18 20:33 ` [PATCH 3/7] tracing: Use var_refs[] for hist trigger reference checking Tom Zanussi
2018-12-19 12:22   ` Masami Hiramatsu
2018-12-19 15:01     ` Tom Zanussi
2018-12-19 15:36       ` Steven Rostedt
2018-12-19 19:08         ` Tom Zanussi
2018-12-19 19:09   ` [PATCH v2 " Tom Zanussi
2018-12-18 20:33 ` [PATCH 4/7] tracing: Remove open-coding of hist trigger var_ref management Tom Zanussi
2018-12-18 20:33 ` [PATCH 5/7] tracing: Use hist trigger's var_ref array to destroy var_refs Tom Zanussi
2018-12-18 20:33 ` [PATCH 6/7] tracing: Remove hist trigger synth_var_refs Tom Zanussi
2018-12-18 20:33 ` [PATCH 7/7] tracing: Add hist trigger comments for variable-related fields Tom Zanussi
2018-12-19 11:45 ` [PATCH 0/7] tracing: Hist trigger var-ref cleanup and comments Namhyung Kim
2018-12-19 15:00   ` Tom Zanussi
2018-12-19 12:27 ` Masami Hiramatsu
2018-12-19 15:02   ` Tom Zanussi

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=426609d1a7c8217187f18011add87ca4fdd54f1e.camel@perches.com \
    --to=joe@perches.com \
    --cc=bigeasy@linutronix.de \
    --cc=joel@joelfernandes.org \
    --cc=julia@ni.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mhiramat@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    --cc=vedang.patel@intel.com \
    --cc=zanussi@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.