mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
tracing: Only report the stacktrace modifier on a real field
get_hist_field_flags() returns "stacktrace" for any field carrying
HIST_FIELD_FL_STACKTRACE, including the common_stacktrace pseudo-field,
which has no ftrace_event_field behind it. parse_field() no longer takes
the modifier there:
if (stack_modifier &&
(!field || field->filter_type != FILTER_STACKTRACE)) {
hist_err(tr, HIST_ERR_BAD_FIELD_MODIFIER, errpos(field_str));
so expr_field_str() renders "common_stacktrace.stacktrace", a spelling
that cannot be parsed back.
Report the modifier only when there is a field to report it for.
hist_field_print(), the other caller of get_hist_field_flags(), excludes
HIST_FIELD_FL_STACKTRACE before it calls, so this is confined to
expr_field_str(), whose only key renderer arrives in the next patch.
Link: https://patch.msgid.link/20260914053443.981201-4-donggeunyoo.kernel@gmail.com
Fixes: a5e70ba87c ("tracing: Fix memory corruption from the histogram stacktrace modifier")
Signed-off-by: Donggeun Yoo <donggeunyoo.kernel@gmail.com>
Assisted-by: Claude:claude-fable-5
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
parent
c027ed03bc
commit
18bb005845
|
|
@ -1725,7 +1725,7 @@ static const char *get_hist_field_flags(struct hist_field *hist_field)
|
|||
flags_str = "percent";
|
||||
else if (hist_field->flags & HIST_FIELD_FL_GRAPH)
|
||||
flags_str = "graph";
|
||||
else if (hist_field->flags & HIST_FIELD_FL_STACKTRACE)
|
||||
else if (hist_field->flags & HIST_FIELD_FL_STACKTRACE && hist_field->field)
|
||||
flags_str = "stacktrace";
|
||||
|
||||
return flags_str;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user