Skip to content
  • Florian Westphal's avatar
    netfilter: nat: add dependencies on conntrack module · a357b3f8
    Florian Westphal authored
    
    
    MASQUERADE, S/DNAT and REDIRECT already call functions that depend on the
    conntrack module.
    
    However, since the conntrack hooks are now registered in a lazy fashion
    (i.e., only when needed) a symbol reference is not enough.
    
    Thus, when something is added to a nat table, make sure that it will see
    packets by calling nf_ct_netns_get() which will register the conntrack
    hooks in the current netns.
    
    An alternative would be to add these dependencies to the NAT table.
    
    However, that has problems when using non-modular builds -- we might
    register e.g. ipv6 conntrack before its initcall has run, leading to NULL
    deref crashes since its per-netns storage has not yet been allocated.
    
    Adding the dependency in the modules instead has the advantage that nat
    table also does not register its hooks until rules are added.
    
    Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    a357b3f8