[NETFILTER]: xt_sctp: fix endless loop caused by 0 chunk length
authorPatrick McHardy <kaber@trash.net>
Tue, 20 Jun 2006 06:39:45 +0000 (23:39 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 20 Jun 2006 06:39:45 +0000 (23:39 -0700)
Fix endless loop in the SCTP match similar to those already fixed in
the SCTP conntrack helper (was CVE-2006-1527).

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/netfilter/xt_sctp.c

index b5110e5b54b046989fb3d7fa1abb3b5d437419b9..9316c753692fef1bbbd81f71a381000d6edbb024 100644 (file)
@@ -62,7 +62,7 @@ match_packet(const struct sk_buff *skb,
 
        do {
                sch = skb_header_pointer(skb, offset, sizeof(_sch), &_sch);
-               if (sch == NULL) {
+               if (sch == NULL || sch->length == 0) {
                        duprintf("Dropping invalid SCTP packet.\n");
                        *hotdrop = 1;
                        return 0;