Re: [PATCH 2/7] tracing: Change strlen to sizeof for hist trigger static strings
From: Steven Rostedt
Date: Wed Dec 19 2018 - 15:34:53 EST
On Wed, 19 Dec 2018 12:22:38 -0800
Joe Perches <joe@xxxxxxxxxxx> 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))
And go around and use that throughout the kernel. By doing a quick
grep, I already spotted a few bugs.