Commit 58c5724e authored by Masami Hiramatsu's avatar Masami Hiramatsu Committed by Steven Rostedt (Google)
Browse files

tracing: Avoid -Warray-bounds warning for __rel_loc macro

Since -Warray-bounds checks the destination size from the type of given
pointer, __assign_rel_str() macro gets warned because it passes the
pointer to the 'u32' field instead of 'trace_event_raw_*' data structure.
Pass the data address calculated from the 'trace_event_raw_*' instead of
'u32' __rel_loc field.

Link: https://lkml.kernel.org/r/20220125233154.dac280ed36944c0c2fe6f3ac@kernel.org



Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Kees Cook <keescook@chromium.org>
Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
[ This did not fix the warning, but is still a nice clean up ]
Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
parent e629e7b5
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -319,7 +319,8 @@ TRACE_MAKE_SYSTEM_STR();

#undef __get_rel_dynamic_array
#define __get_rel_dynamic_array(field)					\
		((void *)(&__entry->__rel_loc_##field) +	\
		((void *)__entry + 					\
		 offsetof(typeof(*__entry), __rel_loc_##field) +	\
		 sizeof(__entry->__rel_loc_##field) +			\
		 (__entry->__rel_loc_##field & 0xffff))