All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.