mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 20:07:46 +09:00
tracing/filter: Do not WARN on operand count going below zero
commit b4875bbe7e upstream.
When testing the fix for the trace filter, I could not come up with
a scenario where the operand count goes below zero, so I added a
WARN_ON_ONCE(cnt < 0) to the logic. But there is legitimate case
that it can happen (although the filter would be wrong).
# echo '>' > /sys/kernel/debug/events/ext4/ext4_truncate_exit/filter
That is, a single operation without any operands will hit the path
where the WARN_ON_ONCE() can trigger. Although this is harmless,
and the filter is reported as a error. But instead of spitting out
a warning to the kernel dmesg, just fail nicely and report it via
the proper channels.
Link: http://lkml.kernel.org/r/558C6082.90608@oracle.com
Reported-by: Vince Weaver <vincent.weaver@maine.edu>
Reported-by: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
5484ab147d
commit
c8b9a1fbd1
@@ -1342,7 +1342,9 @@ static int check_preds(struct filter_parse_state *ps)
|
||||
continue;
|
||||
}
|
||||
n_normal_preds++;
|
||||
WARN_ON_ONCE(cnt < 0);
|
||||
/* all ops should have operands */
|
||||
if (cnt < 0)
|
||||
break;
|
||||
}
|
||||
|
||||
if (cnt != 1 || !n_normal_preds || n_logical_preds >= n_normal_preds) {
|
||||
|
||||
Reference in New Issue
Block a user