From: Nick <vincent@systemli.org>
To: Phil Sutter <phil@nwl.cc>, netfilter-devel@vger.kernel.org
Cc: Jan Engelhardt <jengelh@inai.de>,
Pablo Neira Ayuso <pablo@netfilter.org>
Subject: Re: [iptables PATCH] libxtables: Unexport init_extensions*() declarations
Date: Fri, 3 Jun 2022 15:10:45 +0200 [thread overview]
Message-ID: <ed67442e-883c-fd20-5641-c053fa315e78@systemli.org> (raw)
In-Reply-To: <eab33b47-5d3a-f1b8-45e6-d0025d9acf76@systemli.org>
The patch works for me. Thanks.
Bests
Nick
On 6/3/22 07:08, Nick wrote:
> Thanks. You can also put my whole Name: Nick Hainke
> <vincent@systemli.org>.
> I will test it again. :) I had a longer discussion with another
> OpenWrt member, why everything is done in OpenWrt as it is. Not sure
> what will happen in future with firewall3.
>
> Bests
> Nick
>
> On 6/2/22 20:24, Phil Sutter wrote:
>> 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 <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(-)
>>
>> diff --git a/include/xtables.h b/include/xtables.h
>> index c2694b7b28886..f1937f3ea0530 100644
>> --- a/include/xtables.h
>> +++ b/include/xtables.h
>> @@ -585,27 +585,6 @@ static inline void
>> xtables_print_mark_mask(unsigned int mark,
>> 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 *name);
>> # 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" */
prev parent reply other threads:[~2022-06-03 13:11 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-02 18:24 [iptables PATCH] libxtables: Unexport init_extensions*() declarations Phil Sutter
2022-06-03 5:08 ` Nick
2022-06-03 13:10 ` Nick [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ed67442e-883c-fd20-5641-c053fa315e78@systemli.org \
--to=vincent@systemli.org \
--cc=jengelh@inai.de \
--cc=netfilter-devel@vger.kernel.org \
--cc=pablo@netfilter.org \
--cc=phil@nwl.cc \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).