• Florian Westphal's avatar
    netfilter: xt_recent: don't reject rule if new hitcount exceeds table max · cef9ed86
    Florian Westphal authored
    given:
    -A INPUT -m recent --update --seconds 30 --hitcount 4
    and
    iptables-save > foo
    
    then
    iptables-restore < foo
    
    will fail with:
    kernel: xt_recent: hitcount (4) is larger than packets to be remembered (4) for table DEFAULT
    
    Even when the check is fixed, the restore won't work if the hitcount is
    increased to e.g. 6, since by the time checkentry runs it will find the
    'old' incarnation of the table.
    
    We can avoid this by increasing the maximum threshold silently; we only
    have to rm all the current entries of the table (these entries would
    not have enough room to handle the increased hitcount).
    
    This even makes (not-very-useful)
    -A INPUT -m recent --update --seconds 30 --hitcount 4
    -A INPUT -m recent --update --seconds 30 --hitcount 42
    work.
    
    Fixes: abc86d0f (netfilter: xt_recent: relax ip_pkt_list_tot restrictions)
    Tracked-down-by: default avatarChris Vine <chris@cvine.freeserve.co.uk>
    Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    cef9ed86
xt_recent.c 19.4 KB