A modified version of this patch was commited upstream as part of a fixup series https://bugzilla.netfilter.org/show_bug.cgi?id=1593 https://git.netfilter.org/iptables/commit/?id=0836524f093c0fd9c39604a46a949e43d9b47ef2 --- a/iptables/xtables-monitor.c +++ b/iptables/xtables-monitor.c @@ -629,6 +629,8 @@ int xtables_monitor_main(int argc, char init_extensions(); init_extensions4(); init_extensions6(); + init_extensionsa(); + init_extensionsb(); #endif if (nft_init(&h, AF_INET, xtables_ipv4)) { --- a/iptables/xtables-restore.c +++ b/iptables/xtables-restore.c @@ -368,9 +368,17 @@ xtables_restore_main(int family, const c #endif break; case NFPROTO_ARP: +#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS) + init_extensions(); + init_extensionsa(); +#endif tables = xtables_arp; break; case NFPROTO_BRIDGE: +#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS) + init_extensions(); + init_extensionsb(); +#endif tables = xtables_bridge; break; default: --- a/iptables/xtables-save.c +++ b/iptables/xtables-save.c @@ -208,9 +208,17 @@ xtables_save_main(int family, int argc, d.commit = true; break; case NFPROTO_ARP: +#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS) + init_extensions(); + init_extensionsa(); +#endif tables = xtables_arp; break; case NFPROTO_BRIDGE: { +#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS) + init_extensions(); + init_extensionsb(); +#endif const char *ctr = getenv("EBTABLES_SAVE_COUNTER"); if (!(d.format & FMT_NOCOUNTS)) { --- a/iptables/xtables-standalone.c +++ b/iptables/xtables-standalone.c @@ -58,6 +58,8 @@ xtables_main(int family, const char *pro init_extensions(); init_extensions4(); init_extensions6(); + init_extensionsa(); + init_extensionsb(); #endif if (nft_init(&h, family, xtables_ipv4) < 0) { --- a/iptables/xtables-translate.c +++ b/iptables/xtables-translate.c @@ -474,9 +474,17 @@ static int xtables_xlate_main_common(str tables = xtables_ipv4; break; case NFPROTO_ARP: +#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS) + init_extensions(); + init_extensionsa(); +#endif tables = xtables_arp; break; case NFPROTO_BRIDGE: +#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS) + init_extensions(); + init_extensionsb(); +#endif tables = xtables_bridge; break; default: --- a/iptables/xtables-arp.c +++ b/iptables/xtables-arp.c @@ -438,6 +438,7 @@ int nft_init_arp(struct nft_handle *h, c } #if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS) + init_extensions(); init_extensionsa(); #endif --- a/iptables/xtables-eb.c +++ b/iptables/xtables-eb.c @@ -685,6 +685,7 @@ int nft_init_eb(struct nft_handle *h, co } #if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS) + init_extensions(); init_extensionsb(); #endif