]> The Tcpdump Group git mirrors - tcpdump/commitdiff
Add bounds checking.
authorguy <guy>
Wed, 24 Mar 2004 00:56:11 +0000 (00:56 +0000)
committerguy <guy>
Wed, 24 Mar 2004 00:56:11 +0000 (00:56 +0000)
print-icmp.c
print-igmp.c

index 083276eb66e5ef70f59ea7d13c07f74a96339e0f..c1feebbbb6ef326f9e143239048e63914f6bb48a 100644 (file)
@@ -21,7 +21,7 @@
 
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/tcpdump/print-icmp.c,v 1.75 2003-11-16 09:36:22 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/tcpdump/print-icmp.c,v 1.76 2004-03-24 00:56:11 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -305,6 +305,7 @@ icmp_print(const u_char *bp, u_int plen, const u_char *bp2, int fragmented)
                        oip = &dp->icmp_ip;
                        hlen = IP_HL(oip) * 4;
                        ouh = (struct udphdr *)(((u_char *)oip) + hlen);
+                       TCHECK(ouh->uh_dport);
                        dport = EXTRACT_16BITS(&ouh->uh_dport);
                        switch (oip->ip_p) {
 
index b0f9fc450ac13d079c83d50ca0869a616e6e8c95..a848562985d90f89c391fe700bc0a1b87789d92a 100644 (file)
@@ -21,7 +21,7 @@
 
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/tcpdump/print-igmp.c,v 1.14 2003-11-19 09:42:04 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/tcpdump/print-igmp.c,v 1.15 2004-03-24 00:59:16 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -300,6 +300,7 @@ igmp_print(register const u_char *bp, register u_int len)
        print_igmpv3_report(bp, len);
         break;
     case 0x17:
+        TCHECK2(bp[4], 4);
         (void)printf("igmp leave %s", ipaddr_string(&bp[4]));
         break;
     case 0x13: