--- tcpdump-3.6.2/print-rx.c.afsprinting Wed Jan 10 09:12:01 2001 +++ tcpdump-3.6.2/print-rx.c Thu Jul 19 12:13:37 2001 @@ -13,7 +13,7 @@ #ifndef lint static const char rcsid[] = - "@(#) $Header: /var/cvsroot/gentoo-x86/net-analyzer/tcpdump/files/tcpdump-3.6.2-afsprinting.patch,v 1.1 2002/05/09 17:46:23 spider Exp $"; + "@(#) $Header: /var/cvsroot/gentoo-x86/net-analyzer/tcpdump/files/tcpdump-3.6.2-afsprinting.patch,v 1.1 2002/05/09 17:46:23 spider Exp $"; #endif #ifdef HAVE_CONFIG_H @@ -635,14 +635,16 @@ 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 @@ bp += sizeof(int32_t); \ } \ s[MAX] = '\0'; \ - printf(" \"%s\"", s); \ + printf(" \""); \ + fn_print(s, NULL); \ + printf("\""); \ } static void @@ -1087,7 +1091,9 @@ 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 @@ 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)