diff options
author | Max Laier <mlaier@FreeBSD.org> | 2007-10-16 02:20:42 +0000 |
---|---|---|
committer | Max Laier <mlaier@FreeBSD.org> | 2007-10-16 02:20:42 +0000 |
commit | b5bfcb5d8ae026769a67b6230c15014efc32f7fe (patch) | |
tree | 01f74f6819cfb28636e2f6d04efefacdfecafc5c /contrib/tcpdump/print-rx.c | |
parent | faeb38d111efa1ecad5565f314581e95ce3ac7f8 (diff) | |
download | src-b5bfcb5d8ae026769a67b6230c15014efc32f7fe.tar.gz src-b5bfcb5d8ae026769a67b6230c15014efc32f7fe.zip |
Import of tcpdump v3.9.8
Notes
Notes:
svn path=/vendor/tcpdump/dist/; revision=172683
Diffstat (limited to 'contrib/tcpdump/print-rx.c')
-rw-r--r-- | contrib/tcpdump/print-rx.c | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/contrib/tcpdump/print-rx.c b/contrib/tcpdump/print-rx.c index bf7c6bdcc6dd..d99106660ee7 100644 --- a/contrib/tcpdump/print-rx.c +++ b/contrib/tcpdump/print-rx.c @@ -34,7 +34,7 @@ #ifndef lint static const char rcsid[] _U_ = - "@(#) $Header: /tcpdump/master/tcpdump/print-rx.c,v 1.37 2003/11/16 09:36:36 guy Exp $"; + "@(#) $Header: /tcpdump/master/tcpdump/print-rx.c,v 1.37.2.2 2007/06/15 19:43:15 guy Exp $"; #endif #ifdef HAVE_CONFIG_H @@ -1013,6 +1013,7 @@ acl_print(u_char *s, int maxsize, u_char *end) int pos, neg, acl; int n, i; char *user; + char fmt[1024]; if ((user = (char *)malloc(maxsize)) == NULL) return; @@ -1046,7 +1047,8 @@ acl_print(u_char *s, int maxsize, u_char *end) printf("a"); for (i = 0; i < pos; i++) { - if (sscanf((char *) s, "%s %d\n%n", user, &acl, &n) != 2) + snprintf(fmt, sizeof(fmt), "%%%ds %%d\n%%n", maxsize - 1); + if (sscanf((char *) s, fmt, user, &acl, &n) != 2) goto finish; s += n; printf(" +{"); @@ -1059,7 +1061,8 @@ acl_print(u_char *s, int maxsize, u_char *end) } for (i = 0; i < neg; i++) { - if (sscanf((char *) s, "%s %d\n%n", user, &acl, &n) != 2) + snprintf(fmt, sizeof(fmt), "%%%ds %%d\n%%n", maxsize - 1); + if (sscanf((char *) s, fmt, user, &acl, &n) != 2) goto finish; s += n; printf(" -{"); @@ -2299,6 +2302,7 @@ rx_ack_print(register const u_char *bp, int length) { struct rx_ackPacket *rxa; int i, start, last; + u_int32_t firstPacket; if (length < (int)sizeof(struct rx_header)) return; @@ -2327,8 +2331,9 @@ rx_ack_print(register const u_char *bp, int length) (int) EXTRACT_16BITS(&rxa->bufferSpace), (int) EXTRACT_16BITS(&rxa->maxSkew)); + firstPacket = EXTRACT_32BITS(&rxa->firstPacket); printf(" first %d serial %d reason %s", - EXTRACT_32BITS(&rxa->firstPacket), EXTRACT_32BITS(&rxa->serial), + firstPacket, EXTRACT_32BITS(&rxa->serial), tok2str(rx_ack_reasons, "#%d", (int) rxa->reason)); /* @@ -2371,7 +2376,7 @@ rx_ack_print(register const u_char *bp, int length) if (last == -2) { printf(" acked %d", - rxa->firstPacket + i); + firstPacket + i); start = i; } @@ -2385,7 +2390,7 @@ rx_ack_print(register const u_char *bp, int length) */ else if (last != i - 1) { - printf(",%d", rxa->firstPacket + i); + printf(",%d", firstPacket + i); start = i; } @@ -2411,7 +2416,7 @@ rx_ack_print(register const u_char *bp, int length) * range. */ } else if (last == i - 1 && start != last) - printf("-%d", rxa->firstPacket + i - 1); + printf("-%d", firstPacket + i - 1); /* * So, what's going on here? We ran off the end of the @@ -2425,7 +2430,7 @@ rx_ack_print(register const u_char *bp, int length) */ if (last == i - 1 && start != last) - printf("-%d", rxa->firstPacket + i - 1); + printf("-%d", firstPacket + i - 1); /* * Same as above, just without comments @@ -2435,18 +2440,18 @@ rx_ack_print(register const u_char *bp, int length) if (rxa->acks[i] == RX_ACK_TYPE_NACK) { if (last == -2) { printf(" nacked %d", - rxa->firstPacket + i); + firstPacket + i); start = i; } else if (last != i - 1) { - printf(",%d", rxa->firstPacket + i); + printf(",%d", firstPacket + i); start = i; } last = i; } else if (last == i - 1 && start != last) - printf("-%d", rxa->firstPacket + i - 1); + printf("-%d", firstPacket + i - 1); if (last == i - 1 && start != last) - printf("-%d", rxa->firstPacket + i - 1); + printf("-%d", firstPacket + i - 1); bp += rxa->nAcks; } |