From a9799a5121562e2e5fa8f31b01151f195efc92fc Mon Sep 17 00:00:00 2001 From: Francis Deslauriers Date: Wed, 17 May 2017 17:09:12 -0400 Subject: [PATCH] Fix: NULL pointer dereference of THIS_MODULE with built-in modules THIS MODULE is defined to 0 when a module is built-in the kernel [1]. This caused NULL pointer dereference when booting a kernel with the lttng-modules built-in. To fix this issue, add #if guard around the wrapper_lttng_fixup_sig function checking if the MODULE macro is defined to confirm that this piece of code will end up in a module and not in the kernel itself. [1]: linux/include/linux/export.h:32 Fixes: #1107 Signed-off-by: Francis Deslauriers Signed-off-by: Mathieu Desnoyers --- wrapper/tracepoint.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/wrapper/tracepoint.h b/wrapper/tracepoint.h index 367cdf42..780f9a86 100644 --- a/wrapper/tracepoint.h +++ b/wrapper/tracepoint.h @@ -87,6 +87,10 @@ int wrapper_tracepoint_module_notify(struct notifier_block *nb, } } +#endif /* CONFIG_MODULE_SIG */ + +#if defined(CONFIG_MODULE_SIG) && defined(MODULE) + static inline int wrapper_lttng_fixup_sig(struct module *mod) { @@ -106,7 +110,7 @@ int wrapper_lttng_fixup_sig(struct module *mod) return ret; } -#else /* CONFIG_MODULE_SIG */ +#else /* #if defined(CONFIG_MODULE_SIG) && defined(MODULE) */ static inline int wrapper_lttng_fixup_sig(struct module *mod) @@ -114,6 +118,6 @@ int wrapper_lttng_fixup_sig(struct module *mod) return 0; } -#endif /* #else CONFIG_MODULE_SIG */ +#endif /*#else #if defined(CONFIG_MODULE_SIG) && defined(MODULE) */ #endif /* _LTTNG_WRAPPER_TRACEPOINT_H */ -- 2.34.1