netfilter-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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" */

      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).