mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02: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
					
				
					 1 changed files with 1 additions and 1 deletions
				
			
		| 
						 | 
					@ -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 a new issue