X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=probes%2Flttng-events.h;fp=probes%2Flttng-events.h;h=db445f1adea405038b55b8dea2e56e7769e0e6d9;hb=54f9f68d26153dad8813721793b7211c82216efb;hp=f6f7ef1c3bebb1a6b953d7f44f94164d9018b53b;hpb=4f8399617e18698100e8ca4dc221ccd9e0f72e9f;p=lttng-modules.git diff --git a/probes/lttng-events.h b/probes/lttng-events.h index f6f7ef1c..db445f1a 100644 --- a/probes/lttng-events.h +++ b/probes/lttng-events.h @@ -28,6 +28,8 @@ #include "../lttng-events.h" #include "../lttng-tracer-core.h" +#define __LTTNG_NULL_STRING "(null)" + /* * Macro declarations used for all stages. */ @@ -505,7 +507,8 @@ static __used struct lttng_probe_desc TP_ID(__probe_desc___, TRACE_SYSTEM) = { #undef __string #define __string(_item, _src) \ - __event_len += __dynamic_len[__dynamic_len_idx++] = strlen(_src) + 1; + __event_len += __dynamic_len[__dynamic_len_idx++] = \ + strlen((_src) ? (_src) : __LTTNG_NULL_STRING) + 1; /* * strlen_user includes \0. If returns 0, it faulted, so we set size to @@ -814,8 +817,12 @@ __assign_##dest: \ __assign_##dest: \ if (0) \ (void) __typemap.dest; \ - lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(__typemap.dest)); \ - __chan->ops->event_strcpy(&__ctx, src, __get_dynamic_array_len(dest)); \ + { \ + const char *__ctf_tmp_string = \ + ((src) ? (src) : __LTTNG_NULL_STRING); \ + lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(__typemap.dest)); \ + __chan->ops->event_strcpy(&__ctx, __ctf_tmp_string, __get_dynamic_array_len(dest)); \ + } \ goto __end_field_##dest; /* Named field types must be defined in lttng-types.h */