Messages in this thread | | | Subject | Re: [PATCH] tracing/histograms: Fix parsing of "sym-offset" modifier | From | Tom Zanussi <> | Date | Wed, 07 Jul 2021 11:30:46 -0500 |
| |
Hi Steve,
On Wed, 2021-07-07 at 11:08 -0400, Steven Rostedt wrote: > From: "Steven Rostedt (VMware)" <rostedt@goodmis.org> > > With the addition of simple mathematical operations (plus and minus), > the > parsing of the "sym-offset" modifier broke, as it took the '-' part > of the > "sym-offset" as a minus, and tried to break it up into a mathematical > operation of "field.sym - offset", in which case it failed to parse > (unless the event had a field called "offset"). > > Both .sym and .sym-offset modifiers should not be entered into > mathematical calculations anyway. If ".sym-offset" is found in the > modifier, then simply make it not an operation that can be calculated > on. > > Cc: stable@vger.kernel.org > Fixes: 100719dcef447 ("tracing: Add simple expression support to hist > triggers") > Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> > --- > kernel/trace/trace_events_hist.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/kernel/trace/trace_events_hist.c > b/kernel/trace/trace_events_hist.c > index ba03b7d84fc2..0207aeed31e6 100644 > --- a/kernel/trace/trace_events_hist.c > +++ b/kernel/trace/trace_events_hist.c > @@ -1555,6 +1555,13 @@ static int contains_operator(char *str) > > switch (*op) { > case '-': > + /* > + * Unfortunately, the modifier ".sym-offset" > + * can confuse things. > + */
Good catch.
> + if (op - str >= 4 && !strncmp(op - 4, ".sym-offset", > 11)) > + return FIELD_OP_NONE; > + > if (*str == '-') > field_op = FIELD_OP_UNARY_MINUS; > else
Reviewed-by: Tom Zanussi <zanussi@kernel.org>
| |