83 lines
2.6 KiB
Diff
83 lines
2.6 KiB
Diff
From ef108943f69a6e20533d58823740d3f0534ea8ec Mon Sep 17 00:00:00 2001
|
|
From: Phil Sutter <phil@nwl.cc>
|
|
Date: Wed, 1 Jun 2022 19:15:06 +0200
|
|
Subject: libxtables: Unexport init_extensions*() declarations
|
|
|
|
The functions are used for static builds to initialize extensions after
|
|
libxtables init. Regular library users should not need them, but the
|
|
empty declarations introduced in #else case (and therefore present in
|
|
user's env) may clash with existing symbol names.
|
|
|
|
Avoid problems and guard the whole block declaring the function
|
|
prototypes and mangling extensions' _init functions by XTABLES_INTERNAL.
|
|
|
|
Reported-by: Nick Hainke <vincent@systemli.org>
|
|
Fixes: 6c689b639cf8e ("Simplify static build extension loading")
|
|
Signed-off-by: Phil Sutter <phil@nwl.cc>
|
|
---
|
|
include/xtables.h | 44 ++++++++++++++++++++++----------------------
|
|
1 file changed, 22 insertions(+), 22 deletions(-)
|
|
|
|
--- a/include/xtables.h
|
|
+++ b/include/xtables.h
|
|
@@ -585,27 +585,6 @@ static inline void xtables_print_mark_ma
|
|
xtables_print_val_mask(mark, mask, NULL);
|
|
}
|
|
|
|
-#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS)
|
|
-# ifdef _INIT
|
|
-# undef _init
|
|
-# define _init _INIT
|
|
-# endif
|
|
- extern void init_extensions(void);
|
|
- extern void init_extensions4(void);
|
|
- extern void init_extensions6(void);
|
|
- extern void init_extensionsa(void);
|
|
- extern void init_extensionsb(void);
|
|
-#else
|
|
-# define _init __attribute__((constructor)) _INIT
|
|
-# define EMPTY_FUNC_DEF(x) static inline void x(void) {}
|
|
- EMPTY_FUNC_DEF(init_extensions)
|
|
- EMPTY_FUNC_DEF(init_extensions4)
|
|
- EMPTY_FUNC_DEF(init_extensions6)
|
|
- EMPTY_FUNC_DEF(init_extensionsa)
|
|
- EMPTY_FUNC_DEF(init_extensionsb)
|
|
-# undef EMPTY_FUNC_DEF
|
|
-#endif
|
|
-
|
|
extern const struct xtables_pprot xtables_chain_protos[];
|
|
extern uint16_t xtables_parse_protocol(const char *s);
|
|
|
|
@@ -663,9 +642,30 @@ void xtables_announce_chain(const char *
|
|
# define ARRAY_SIZE(x) (sizeof(x) / sizeof(*(x)))
|
|
# endif
|
|
|
|
+#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS)
|
|
+# ifdef _INIT
|
|
+# undef _init
|
|
+# define _init _INIT
|
|
+# endif
|
|
+ extern void init_extensions(void);
|
|
+ extern void init_extensions4(void);
|
|
+ extern void init_extensions6(void);
|
|
+ extern void init_extensionsa(void);
|
|
+ extern void init_extensionsb(void);
|
|
+#else
|
|
+# define _init __attribute__((constructor)) _INIT
|
|
+# define EMPTY_FUNC_DEF(x) static inline void x(void) {}
|
|
+ EMPTY_FUNC_DEF(init_extensions)
|
|
+ EMPTY_FUNC_DEF(init_extensions4)
|
|
+ EMPTY_FUNC_DEF(init_extensions6)
|
|
+ EMPTY_FUNC_DEF(init_extensionsa)
|
|
+ EMPTY_FUNC_DEF(init_extensionsb)
|
|
+# undef EMPTY_FUNC_DEF
|
|
+#endif
|
|
+
|
|
extern void _init(void);
|
|
|
|
-#endif
|
|
+#endif /* XTABLES_INTERNAL */
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|