]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-ldp.c
add support for Frame-Relay over AS-PIC dissector
[tcpdump] / print-ldp.c
index 560fdb6ae4c226d5a5acb7c7e868b448ad3875e4..c0bcd3af49adfeefc32404abad8d6231658afdba 100644 (file)
@@ -16,7 +16,7 @@
 
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/tcpdump/print-ldp.c,v 1.8.2.4 2005-05-03 08:23:07 hannes Exp $";
+    "@(#) $Header: /tcpdump/master/tcpdump/print-ldp.c,v 1.8.2.6 2005-07-11 20:24:34 hannes Exp $";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -302,7 +302,7 @@ ldp_tlv_print(register const u_char *tptr) {
            printf("IPv4, addresses:");
            for (i=0; i<(tlv_tlen-2)/4; i++) {
                printf(" %s",ipaddr_string(tptr));
-               tptr+=4;
+               tptr+=sizeof(struct in_addr);
            }
        }
 #ifdef INET6
@@ -310,7 +310,7 @@ ldp_tlv_print(register const u_char *tptr) {
            printf("IPv6, addresses:");
            for (i=0; i<(tlv_tlen-2)/16; i++) {
                printf(" %s",ip6addr_string(tptr));
-               tptr+=16;
+               tptr+=sizeof(struct in6_addr);
            }
        }
 #endif
@@ -375,6 +375,8 @@ ldp_tlv_print(register const u_char *tptr) {
                 vc_info_tlv_len = *(tptr+1);
                 if (vc_info_tlv_len < 2)
                     break;
+                if (vc_info_len < vc_info_tlv_len)
+                    break;
 
                 printf("\n\t\tInterface Parameter: %s (0x%02x), len %u",
                        tok2str(ldp_fec_martini_ifparm_values,"Unknown",vc_info_tlv_type),