summaryrefslogtreecommitdiff
blob: 2130346a2e360a8555cf453c7b92728557ddb160 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
--- 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)