tcpdump mailing list archives

additional boundary check necessary in MLDv2 packet parsing


From: SUZUKI Shinsuke <suz () kame net>
Date: Wed, 28 Jul 2004 16:59:38 +0900

Hello all,

Here's a patch to properly check buffer boundary in MLDv2 packet
parsing.  Could someone review and commit it?

Thanks,
----
SUZUKI, Shinsuke @ Hitachi / KAME Project

--- print-icmp6.c.orig  Wed Jul 28 15:34:40 2004
+++ print-icmp6.c       Wed Jul 28 16:49:16 2004
@@ -764,7 +764,7 @@
                printf(" [invalid number of groups]");
                return;
            }
-            TCHECK(bp[group + 4]);
+            TCHECK2(bp[group + 4], 16);
             printf(" [gaddr %s", ip6addr_string(&bp[group + 4]));
            printf(" %s", tok2str(mldv2report2str, " [v2-report-#%d]",
                                                                bp[group]));
@@ -820,6 +820,7 @@
     if (vflag) {
        (void)printf(" [max resp delay=%d]", mrt);
     }
+    TCHECK2(bp[8], 16);
     printf(" [gaddr %s", ip6addr_string(&bp[8]));
 
     if (vflag) {
@@ -838,6 +839,7 @@
        printf(" qqi=%d", qqi);
     }
 
+    TCHECK2(bp[26], 2);
     nsrcs = ntohs(*(u_short *)&bp[26]);
     if (nsrcs > 0) {
        if (len < 28 + nsrcs * 16)
-
This is the tcpdump-workers list.
Visit https://lists.sandelman.ca/ to unsubscribe.

Current thread: