• Pablo Neira Ayuso's avatar
    netfilter: x_tables: add context to know if extension runs from nft_compat · 55917a21
    Pablo Neira Ayuso authored
    Currently, we have four xtables extensions that cannot be used from the
    xt over nft compat layer. The problem is that they need real access to
    the full blown xt_entry to validate that the rule comes with the right
    dependencies. This check was introduced to overcome the lack of
    sufficient userspace dependency validation in iptables.
    
    To resolve this problem, this patch introduces a new field to the
    xt_tgchk_param structure that tell us if the extension is run from
    nft_compat context.
    
    The three affected extensions are:
    
    1) CLUSTERIP, this target has been superseded by xt_cluster. So just
       bail out by returning -EINVAL.
    
    2) TCPMSS. Relax the checking when used from nft_compat. If used with
       the wrong configuration, it will corrupt !syn packets by adding TCP
       MSS option.
    
    3) ebt_stp. Relax the check to make sure it uses the reserved
       destination MAC address for STP.
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    Tested-by: default avatarArturo Borrero Gonzalez <arturo.borrero.glez@gmail.com>
    55917a21
ipt_CLUSTERIP.c 19.2 KB