Message ID | 1495055352-6636-1-git-send-email-francis.deslauriers@efficios.com |
---|---|
State | Accepted, archived |
Headers | show |
Merged into master, 2.10, 2.9, 2.8, thanks! Mathieu ----- On May 17, 2017, at 5:09 PM, Francis Deslauriers francis.deslauriers at efficios.com wrote: > 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 <francis.deslauriers at efficios.com> > --- > wrapper/tracepoint.h | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/wrapper/tracepoint.h b/wrapper/tracepoint.h > index 367cdf4..780f9a8 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.7.4
diff --git a/wrapper/tracepoint.h b/wrapper/tracepoint.h index 367cdf4..780f9a8 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 */
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 <francis.deslauriers at efficios.com> --- wrapper/tracepoint.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)