On Sun, 25 Oct 2026 01:26:10 +0900 "Masami Hiramatsu (Google)" <[email protected]> wrote:
> From: Masami Hiramatsu (Google) <[email protected]> > > Several error paths in filter parsing return -EINVAL (or -1) without > calling parse_error() to set pe->lasterr: > > 1. In parse_pred(), when an invalid token is encountered where a field name > is expected (e.g., "common_pid == 1 || (common_pid == 2 && )"), len is 0 > and it returns -1 without calling parse_error(). > 2. In process_preds(), when !nr_preds (e.g., empty or whitespace-only > filter), it returns -EINVAL before predicate_parse() can set > FILT_ERR_NO_FILTER. > 3. In predicate_parse(), when op_stack overflows or the jump target check > fails, it returns -EINVAL without calling parse_error(). > > Because pe->lasterr remains 0 on these paths, append_filter_err() falls > back to printing an uninformative "Error: (0)" instead of reporting the > diagnostic and error position. > > Call parse_error() with the appropriate error code on all of these paths. > > Fixes: 80765597bc58 ("tracing: Rewrite filter logic to be simpler and faster") > Cc: [email protected] > Signed-off-by: Masami Hiramatsu (Google) <[email protected]> This is more of a cleanup than fixes. You can keep the "fixes" tag but remove the stable. It's not that important to backport. Sure, the stable folks may backport it anyway, but I use the stable tag for what I feel is important to backport. -- Steve
