• Patrick McHardy's avatar
    netfilter: {ip,ip6,arp}_tables: fix incorrect loop detection · 1f9352ae
    Patrick McHardy authored
    Commit e1b4b9f3 ([NETFILTER]: {ip,ip6,arp}_tables: fix exponential worst-case
    search for loops) introduced a regression in the loop detection algorithm,
    causing sporadic incorrectly detected loops.
    
    When a chain has already been visited during the check, it is treated as
    having a standard target containing a RETURN verdict directly at the
    beginning in order to not check it again. The real target of the first
    rule is then incorrectly treated as STANDARD target and checked not to
    contain invalid verdicts.
    
    Fix by making sure the rule does actually contain a standard target.
    
    Based on patch by Francis Dupont <Francis_Dupont@isc.org>
    Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
    1f9352ae
ip_tables.c 55.6 KB