From f815ae37f4671c581fdc1c6f99a8490a6dfbb4f6 Mon Sep 17 00:00:00 2001 From: fenner Date: Mon, 23 Jul 2001 23:15:13 +0000 Subject: Virgin import of tcpdump.org tcpdump v3.6.3 --- contrib/tcpdump/print-rx.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'contrib/tcpdump/print-rx.c') diff --git a/contrib/tcpdump/print-rx.c b/contrib/tcpdump/print-rx.c index aa36124..af3cf1b 100644 --- a/contrib/tcpdump/print-rx.c +++ b/contrib/tcpdump/print-rx.c @@ -13,7 +13,7 @@ #ifndef lint static const char rcsid[] = - "@(#) $Header: /tcpdump/master/tcpdump/print-rx.c,v 1.20 2001/01/10 08:12:01 fenner Exp $"; + "@(#) $Header: /tcpdump/master/tcpdump/print-rx.c,v 1.20.2.1 2001/07/09 01:40:59 fenner Exp $"; #endif #ifdef HAVE_CONFIG_H @@ -635,14 +635,16 @@ rx_cache_find(const struct rx_header *rxh, const struct ip *ip, int sport, printf(" fid %d/%d/%d", (int) n1, (int) n2, (int) n3); \ } -#define STROUT(MAX) { int i; \ +#define STROUT(MAX) { unsigned int i; \ TCHECK2(bp[0], sizeof(int32_t)); \ - i = (int) EXTRACT_32BITS(bp); \ + i = EXTRACT_32BITS(bp); \ + if (i > MAX) \ + goto trunc; \ bp += sizeof(int32_t); \ - TCHECK2(bp[0], i); \ - strncpy(s, (char *) bp, min(MAX, i)); \ - s[i] = '\0'; \ - printf(" \"%s\"", s); \ + printf(" \""); \ + if (fn_printn(bp, i, snapend)) \ + goto trunc; \ + printf("\""); \ bp += ((i + sizeof(int32_t) - 1) / sizeof(int32_t)) * sizeof(int32_t); \ } @@ -727,7 +729,9 @@ rx_cache_find(const struct rx_header *rxh, const struct ip *ip, int sport, bp += sizeof(int32_t); \ } \ s[MAX] = '\0'; \ - printf(" \"%s\"", s); \ + printf(" \""); \ + fn_print(s, NULL); \ + printf("\""); \ } static void @@ -1087,7 +1091,9 @@ acl_print(u_char *s, int maxsize, u_char *end) if (sscanf((char *) s, "%s %d\n%n", user, &acl, &n) != 2) goto finish; s += n; - printf(" +{%s ", user); + printf(" +{"); + fn_print(user, NULL); + printf(" "); ACLOUT(acl); printf("}"); if (s > end) @@ -1098,7 +1104,9 @@ acl_print(u_char *s, int maxsize, u_char *end) if (sscanf((char *) s, "%s %d\n%n", user, &acl, &n) != 2) goto finish; s += n; - printf(" -{%s ", user); + printf(" -{"); + fn_print(user, NULL); + printf(" "); ACLOUT(acl); printf("}"); if (s > end) -- cgit v1.1