From cc3360daadd17ef4c2fd8ece5b9a56d55eefe692 Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Wed, 25 May 2016 17:17:41 -0400 Subject: [PATCH] Fix: incorrect structure layout with mixed LGPL/non-LGPL objects MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Linking both _LGPL_SOURCE and non-_LGPL_SOURCE objects into the same module may result in corruption. If the tracepoint_dlopen object used is the one declared by a LGPL compile unit, a non-LGPL compile unit may try to initialize fields beyond the end of the structure. Signed-off-by: Jérémie Galarneau Signed-off-by: Mathieu Desnoyers --- include/lttng/tracepoint.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/include/lttng/tracepoint.h b/include/lttng/tracepoint.h index 0bb5d613..17cbd41f 100644 --- a/include/lttng/tracepoint.h +++ b/include/lttng/tracepoint.h @@ -218,11 +218,9 @@ struct lttng_ust_tracepoint_dlopen { int (*tracepoint_register_lib)(struct lttng_ust_tracepoint * const *tracepoints_start, int tracepoints_count); int (*tracepoint_unregister_lib)(struct lttng_ust_tracepoint * const *tracepoints_start); -#ifndef _LGPL_SOURCE void (*rcu_read_lock_sym_bp)(void); void (*rcu_read_unlock_sym_bp)(void); void *(*rcu_dereference_sym_bp)(void *p); -#endif }; extern struct lttng_ust_tracepoint_dlopen tracepoint_dlopen; -- 2.34.1