Re: [GIT PULL v2] tracing: Updates for v6.9

From: Steven Rostedt
Date: Tue Mar 19 2024 - 13:11:35 EST


On Tue, 19 Mar 2024 13:06:53 -0400
Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:

> This is in the fast path (where the trace event happens), but I can make it
> always do strcmp(), even though it will slow down what is being recorded,
> as I plan on removing the parameter in the next merge window anyway.

I'll change it to this:

#define __assign_str(dst, src) \
do { \
char *__str__ = __get_str(dst); \
int __len__ = __get_dynamic_array_len(dst) - 1; \
WARN_ON_ONCE(!src != !__data_offsets.dst##_ptr_); \
WARN_ON_ONCE(src && strcmp((src), __data_offsets.dst##_ptr_)); \
memcpy(__str__, __data_offsets.dst##_ptr_ ? : \
EVENT_NULL_STR, __len__); \
__str__[__len__] = '\0'; \
} while (0)

The first WARN_ON() will report the bug if src is not NULL and the pointer
is even though the strcmp() will likely crash in that case. But that's a
bug if that happens anyway.

-- Steve