• Florian Westphal's avatar
    netfilter: ip_tables: pass table pointer via nf_hook_ops · ae689334
    Florian Westphal authored
    iptable_x modules rely on 'struct net' to contain a pointer to the
    table that should be evaluated.
    
    In order to remove these pointers from struct net, pass them via
    the 'priv' pointer in a similar fashion as nf_tables passes the
    rule data.
    
    To do that, duplicate the nf_hook_info array passed in from the
    iptable_x modules, update the ops->priv pointers of the copy to
    refer to the table and then change the hookfn implementations to
    just pass the 'priv' argument to the traverser.
    
    After this patch, the xt_table pointers can already be removed
    from struct net.
    
    However, changes to struct net result in re-compile of the entire
    network stack, so do the removal after arptables and ip6tables
    have been converted as well.
    Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    ae689334
iptable_mangle.c 3.44 KB