summaryrefslogtreecommitdiffstats
path: root/contrib/tcpdump/print-rx.c
diff options
context:
space:
mode:
authormlaier <mlaier@FreeBSD.org>2007-10-16 02:20:42 +0000
committermlaier <mlaier@FreeBSD.org>2007-10-16 02:20:42 +0000
commit3b74598d7ea581deadb14ec8ba1c77c14295a7c8 (patch)
tree01f74f6819cfb28636e2f6d04efefacdfecafc5c /contrib/tcpdump/print-rx.c
parent68a3d30d4eef678528761ead6b0743885324cdd0 (diff)
downloadFreeBSD-src-3b74598d7ea581deadb14ec8ba1c77c14295a7c8.zip
FreeBSD-src-3b74598d7ea581deadb14ec8ba1c77c14295a7c8.tar.gz
Import of tcpdump v3.9.8
Diffstat (limited to 'contrib/tcpdump/print-rx.c')
-rw-r--r--contrib/tcpdump/print-rx.c29
1 files changed, 17 insertions, 12 deletions
diff --git a/contrib/tcpdump/print-rx.c b/contrib/tcpdump/print-rx.c
index bf7c6bd..d991066 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;
}
OpenPOWER on IntegriCloud