1 $DragonFly: src/usr.sbin/tcpdump/tcpdump/Attic/print-bgp.c.patch,v 1.1 2007/08/01 22:24:34 pavalos Exp $
4 ===================================================================
5 RCS file: /home/dcvs/src/contrib/tcpdump-3.9/print-bgp.c,v
6 retrieving revision 1.1.1.1
7 diff -u -r1.1.1.1 print-bgp.c
8 --- print-bgp.c 25 Dec 2006 00:17:39 -0000 1.1.1.1
9 +++ print-bgp.c 1 Aug 2007 21:57:48 -0000
15 + * As I remember, some versions of systems have an snprintf() that
16 + * returns -1 if the buffer would have overflowed. If the return
17 + * value is negative, set buflen to 0, to indicate that we've filled
20 + * If the return value is greater than buflen, that means that
21 + * the buffer would have overflowed; again, set buflen to 0 in
24 +#define UPDATE_BUF_BUFLEN(buf, buflen, strlen) \
27 + else if ((u_int)strlen>buflen) \
35 decode_labeled_vpn_l2(const u_char *pptr, char *buf, u_int buflen)
42 strlen=snprintf(buf, buflen, "RD: %s, CE-ID: %u, Label-Block Offset: %u, Label Base %u",
43 bgp_vpn_rd_print(pptr),
44 EXTRACT_16BITS(pptr+8),
45 EXTRACT_16BITS(pptr+10),
46 EXTRACT_24BITS(pptr+12)>>4); /* the label is offsetted by 4 bits so lets shift it right */
47 + UPDATE_BUF_BUFLEN(buf, buflen, strlen);
55 - strlen+=snprintf(buf+strlen,buflen-strlen, "\n\t\tcircuit status vector (%u) length: %u: 0x",
59 + strlen=snprintf(buf,buflen, "\n\t\tcircuit status vector (%u) length: %u: 0x",
62 + UPDATE_BUF_BUFLEN(buf, buflen, strlen);
64 ttlv_len=ttlv_len/8+1; /* how many bytes do we need to read ? */
67 - strlen+=snprintf(buf+strlen,buflen-strlen, "%02x",*pptr++);
69 + strlen=snprintf(buf,buflen, "%02x",*pptr++);
70 + UPDATE_BUF_BUFLEN(buf, buflen, strlen);
76 - snprintf(buf+strlen,buflen-strlen, "\n\t\tunknown TLV #%u, length: %u",
80 + strlen=snprintf(buf,buflen, "\n\t\tunknown TLV #%u, length: %u",
83 + UPDATE_BUF_BUFLEN(buf, buflen, strlen);
87 - tlen-=(tlv_len<<3); /* the tlv-length is expressed in bits so lets shift it tright */
88 + tlen-=(tlv_len<<3); /* the tlv-length is expressed in bits so lets shift it right */