mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-08-18 05:02:03 +00:00
tracing: Fix synth event printk format for str fields
The printk format for synth event uses "%.*s" to print string fields,
but then only passes the pointer part as var arg.
Replace %.*s with %s as the C string is guaranteed to be null-terminated.
The output in print fmt should never have been updated as __get_str()
handles the string limit because it can access the length of the string in
the string meta data that is saved in the ring buffer.
Cc: stable@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fixes: 8db4d6bfbb
("tracing: Change synthetic event string format to limit printed length")
Link: https://lore.kernel.org/20250325165202.541088-1-douglas.raillard@arm.com
Signed-off-by: Douglas Raillard <douglas.raillard@arm.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
This commit is contained in:
parent
8eb1518642
commit
4d38328eb4
@ -305,7 +305,7 @@ static const char *synth_field_fmt(char *type)
|
|||||||
else if (strcmp(type, "gfp_t") == 0)
|
else if (strcmp(type, "gfp_t") == 0)
|
||||||
fmt = "%x";
|
fmt = "%x";
|
||||||
else if (synth_field_is_string(type))
|
else if (synth_field_is_string(type))
|
||||||
fmt = "%.*s";
|
fmt = "%s";
|
||||||
else if (synth_field_is_stack(type))
|
else if (synth_field_is_stack(type))
|
||||||
fmt = "%s";
|
fmt = "%s";
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user