1 diff --exclude='*~' -Naur tcpdump-3.8.3.orig/print-bgp.c tcpdump-3.8.3/print-bgp.c
2 --- tcpdump-3.8.3.orig/print-bgp.c 2005-05-06 17:41:55.000000000 -0300
3 +++ tcpdump-3.8.3/print-bgp.c 2005-05-06 17:45:08.000000000 -0300
8 + if (advance < 0) /* infinite loop protection */
13 diff --exclude='*~' -Naur tcpdump-3.8.3.orig/print-isoclns.c tcpdump-3.8.3/print-isoclns.c
14 --- tcpdump-3.8.3.orig/print-isoclns.c 2005-05-06 17:41:55.000000000 -0300
15 +++ tcpdump-3.8.3/print-isoclns.c 2005-05-06 17:53:57.000000000 -0300
16 @@ -1250,11 +1250,11 @@
20 - printf(", src-id %s", isis_print_id(header_csnp->source_id,SYSTEM_ID_LEN));
21 + printf(", src-id %s", isis_print_id(header_csnp->source_id,NODE_ID_LEN));
25 - printf(", src-id %s", isis_print_id(header_psnp->source_id,SYSTEM_ID_LEN));
26 + printf(", src-id %s", isis_print_id(header_psnp->source_id,NODE_ID_LEN));
34 + if (tlv_len == 0) /* something is malformed */
37 /* now check if we have a decoder otherwise do a hexdump at the end*/
43 case TLV_ISNEIGH_VARLEN:
44 - if (!TTEST2(*tptr, 1))
45 + if (!TTEST2(*tptr, 1) || tmp < 3) /* min. TLV length */
47 lan_alen = *tptr++; /* LAN adress length */
49 diff --exclude='*~' -Naur tcpdump-3.8.3.orig/print-ldp.c tcpdump-3.8.3/print-ldp.c
50 --- tcpdump-3.8.3.orig/print-ldp.c 2005-05-06 17:41:55.000000000 -0300
51 +++ tcpdump-3.8.3/print-ldp.c 2005-05-06 17:49:09.000000000 -0300
53 EXTRACT_32BITS(&ldp_msg_header->id),
54 LDP_MASK_U_BIT(EXTRACT_16BITS(&ldp_msg_header->type)) ? "continue processing" : "ignore");
56 + if (msg_len == 0) /* infinite loop protection */
59 msg_tptr=tptr+sizeof(struct ldp_msg_header);
60 msg_tlen=msg_len-sizeof(struct ldp_msg_header)+4; /* Type & Length fields not included */
62 diff --exclude='*~' -Naur tcpdump-3.8.3.orig/print-rsvp.c tcpdump-3.8.3/print-rsvp.c
63 --- tcpdump-3.8.3.orig/print-rsvp.c 2005-05-06 17:41:55.000000000 -0300
64 +++ tcpdump-3.8.3/print-rsvp.c 2005-05-06 17:51:12.000000000 -0300
66 switch(rsvp_obj_ctype) {
68 while(obj_tlen >= 4 ) {
69 - printf("\n\t Subobject Type: %s",
70 + printf("\n\t Subobject Type: %s, length %u",
71 tok2str(rsvp_obj_xro_values,
73 - RSVP_OBJ_XRO_MASK_SUBOBJ(*obj_tptr)));
74 + RSVP_OBJ_XRO_MASK_SUBOBJ(*obj_tptr)),
77 + if (*(obj_tptr+1) == 0) { /* prevent infinite loops */
78 + printf("\n\t ERROR: zero length ERO subtype");
82 switch(RSVP_OBJ_XRO_MASK_SUBOBJ(*obj_tptr)) {
83 case RSVP_OBJ_XRO_IPV4:
84 printf(", %s, %s/%u, Flags: [%s]",
88 printf("\n\t Restart Time: %ums, Recovery Time: %ums",
89 - EXTRACT_16BITS(obj_tptr),
90 - EXTRACT_16BITS(obj_tptr+4));
91 + EXTRACT_32BITS(obj_tptr),
92 + EXTRACT_32BITS(obj_tptr+4));