From c6e3f225504506b57119bdffc394650511fd1eeb Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Thu, 29 Sep 2011 11:55:12 -0400 Subject: [PATCH] Add __string_from_user Signed-off-by: Mathieu Desnoyers --- probes/lttng-events.h | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/probes/lttng-events.h b/probes/lttng-events.h index 219f63e6..0c8ae0c7 100644 --- a/probes/lttng-events.h +++ b/probes/lttng-events.h @@ -188,6 +188,10 @@ void trace_##_name(void *__data); }, \ }, +#undef __string_from_user +#define __string_from_user(_item, _src) \ + __string(_item, _src) + #undef TP_STRUCT__entry #define TP_STRUCT__entry(args...) args /* Only one used in this phase */ @@ -336,6 +340,11 @@ static __used struct lttng_probe_desc TP_ID(__probe_desc___, TRACE_SYSTEM) = { #define __string(_item, _src) \ __event_len += __dynamic_len[__dynamic_len_idx++] = strlen(_src) + 1; +/* strlen_user includes \0 */ +#undef __string_from_user +#define __string_from_user(_item, _src) \ + __event_len += __dynamic_len[__dynamic_len_idx++] = strlen_user(_src); + #undef TP_PROTO #define TP_PROTO(args...) args @@ -383,6 +392,9 @@ static inline size_t __event_get_size__##_name(size_t *__dynamic_len, _proto) \ #undef __string #define __string(_item, _src) +#undef __string_from_user +#define __string_from_user(_item, _src) + #undef TP_PROTO #define TP_PROTO(args...) args @@ -424,7 +436,11 @@ static inline size_t __event_get_align__##_name(_proto) \ _type _item; #undef __string -#define __string(_item, _src) char _item; +#define __string(_item, _src) char _item; + +#undef __string_from_user +#define __string_from_user(_item, _src) \ + __string(_item, _src) #undef TP_STRUCT__entry #define TP_STRUCT__entry(args...) args @@ -473,6 +489,10 @@ __end_field_##_item##_2: goto __assign_##_item; \ __end_field_##_item: +#undef __string_from_user +#define __string_from_user(_item, _src) \ + __string(_item, _src) + /* * Macros mapping tp_assign() to "=", tp_memcpy() to memcpy() and tp_strcpy() to * strcpy(). -- 2.34.1