1 |
creffett 13/10/04 20:51:42 |
2 |
|
3 |
Added: tptest-3.1.7-getstatsfromlinevuln.patch |
4 |
Log: |
5 |
Security bump wrt bug 261191 |
6 |
|
7 |
(Portage version: 2.2.7/cvs/Linux x86_64, signed Manifest commit with key 42618354) |
8 |
|
9 |
Revision Changes Path |
10 |
1.1 net-analyzer/tptest/files/tptest-3.1.7-getstatsfromlinevuln.patch |
11 |
|
12 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-analyzer/tptest/files/tptest-3.1.7-getstatsfromlinevuln.patch?rev=1.1&view=markup |
13 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-analyzer/tptest/files/tptest-3.1.7-getstatsfromlinevuln.patch?rev=1.1&content-type=text/plain |
14 |
|
15 |
Index: tptest-3.1.7-getstatsfromlinevuln.patch |
16 |
=================================================================== |
17 |
diff -Nurp tptest-3.1.7/engine/tpcommon.c tptest-3.1.7.new/engine/tpcommon.c |
18 |
--- tptest-3.1.7/engine/tpcommon.c 2004-03-22 15:49:12.000000000 -0500 |
19 |
+++ tptest-3.1.7.new/engine/tpcommon.c 2009-06-11 16:48:25.000000000 -0400 |
20 |
@@ -37,6 +37,8 @@ |
21 |
#include <stdio.h> |
22 |
#include <string.h> |
23 |
#include <stdarg.h> |
24 |
+#include <stdlib.h> |
25 |
+#include <stddef.h> |
26 |
|
27 |
#ifdef UNIX |
28 |
#include <sys/time.h> |
29 |
@@ -194,68 +196,76 @@ done: |
30 |
|
31 |
|
32 |
// Fill a tpStats structure with the contents from a STATS line |
33 |
-int GetStatsFromLine(char *line, TPStats *s) |
34 |
+int GetStatsFromLine(const char *line, TPStats *s) |
35 |
{ |
36 |
char valBuf[30]; |
37 |
+ char * stats_ptr = NULL; |
38 |
|
39 |
if (strncmp(line, "STATS ", 6) != 0) |
40 |
return -1; |
41 |
- memset(valBuf, 0, 30); |
42 |
+ memset(valBuf, 0, sizeof(valBuf)); |
43 |
+ stats_ptr = ((char *)line)+6; |
44 |
|
45 |
- if (CopyTagField(valBuf, 29, line+6, "majorv")) |
46 |
- s->MajorVersion = atoi(valBuf); |
47 |
- if (CopyTagField(valBuf, 29, line+6, "minorv")) |
48 |
- s->MinorVersion = atoi(valBuf); |
49 |
- if (CopyTagField(valBuf, 29, line+6, "pktssent")) |
50 |
- s->PktsSent = atoi(valBuf); |
51 |
- if (CopyTagField(valBuf, 29, line+6, "pktsunsent")) |
52 |
- s->PktsUnSent = atoi(valBuf); |
53 |
- if (CopyTagField(valBuf, 29, line+6, "pktsrcvd")) |
54 |
- s->PktsRecvd = atoi(valBuf); |
55 |
- if (CopyTagField(valBuf, 29, line+6, "bytessent")) |
56 |
+ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "majorv")) |
57 |
+ s->MajorVersion = (USHORT) strtoul(valBuf,NULL,10); |
58 |
+ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "minorv")) |
59 |
+ s->MinorVersion = (USHORT) strtoul(valBuf,NULL,10); |
60 |
+ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "pktssent")) |
61 |
+ s->PktsSent = (UINT32) strtoul(valBuf,NULL,10); |
62 |
+ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "pktsunsent")) |
63 |
+ s->PktsUnSent = (UINT32) strtoul(valBuf,NULL,10); |
64 |
+ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "pktsrcvd")) |
65 |
+ s->PktsRecvd = (UINT32) strtoul(valBuf,NULL,10); |
66 |
+ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "bytessent")) |
67 |
sscanf(valBuf, "%" LONG_LONG_PREFIX "d", &(s->BytesSent)); |
68 |
- if (CopyTagField(valBuf, 29, line+6, "bytesrcvd")) |
69 |
+ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "bytesrcvd")) |
70 |
sscanf(valBuf, "%" LONG_LONG_PREFIX "d", &(s->BytesRecvd)); |
71 |
- if (CopyTagField(valBuf, 29, line+6, "maxrtt")) |
72 |
- s->MaxRoundtrip = atoi(valBuf); |
73 |
- if (CopyTagField(valBuf, 29, line+6, "minrtt")) |
74 |
- s->MinRoundtrip = atoi(valBuf); |
75 |
- if (CopyTagField(valBuf, 29, line+6, "oocount")) |
76 |
- s->ooCount = atoi(valBuf); |
77 |
- |
78 |
- if (CopyTagField(valBuf, 29, line+6, "txstart_s")) |
79 |
- s->StartSend.tv_sec = atoi(valBuf); |
80 |
- if (CopyTagField(valBuf, 29, line+6, "txstart_us")) |
81 |
- s->StartSend.tv_usec = atoi(valBuf); |
82 |
- |
83 |
- if (CopyTagField(valBuf, 29, line+6, "txstop_s")) |
84 |
- s->StopSend.tv_sec = atoi(valBuf); |
85 |
- if (CopyTagField(valBuf, 29, line+6, "txstop_us")) |
86 |
- s->StopSend.tv_usec = atoi(valBuf); |
87 |
- |
88 |
- if (CopyTagField(valBuf, 29, line+6, "rxstart_s")) |
89 |
- s->StartRecv.tv_sec = atoi(valBuf); |
90 |
- if (CopyTagField(valBuf, 29, line+6, "rxstart_us")) |
91 |
- s->StartRecv.tv_usec = atoi(valBuf); |
92 |
- |
93 |
- if (CopyTagField(valBuf, 29, line+6, "rxstop_s")) |
94 |
- s->StopRecv.tv_sec = atoi(valBuf); |
95 |
- if (CopyTagField(valBuf, 29, line+6, "rxstop_us")) |
96 |
- s->StopRecv.tv_usec = atoi(valBuf); |
97 |
- |
98 |
- if (CopyTagField(valBuf, 29, line+6, "totrtt")) |
99 |
- s->TotalRoundtrip = atoi(valBuf); |
100 |
- if (CopyTagField(valBuf, 29, line+6, "nortt")) |
101 |
- s->nRoundtrips = atoi(valBuf); |
102 |
- |
103 |
- if (CopyTagField(valBuf, 101, line + 6, "email")) |
104 |
- strcpy(s->email, valBuf); |
105 |
+ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "maxrtt")) |
106 |
+ s->MaxRoundtrip = (UINT32) strtoul(valBuf,NULL,10); |
107 |
+ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "minrtt")) |
108 |
+ s->MinRoundtrip = (UINT32) strtoul(valBuf,NULL,10); |
109 |
+ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "oocount")) |
110 |
+ s->ooCount = (UINT32) strtoul(valBuf,NULL,10); |
111 |
+ |
112 |
+ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "txstart_s")) |
113 |
+ s->StartSend.tv_sec = strtol(valBuf,NULL,10); |
114 |
+ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "txstart_us")) |
115 |
+ s->StartSend.tv_usec = strtol(valBuf,NULL,10); |
116 |
+ |
117 |
+ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "txstop_s")) |
118 |
+ s->StopSend.tv_sec = strtol(valBuf,NULL,10); |
119 |
+ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "txstop_us")) |
120 |
+ s->StopSend.tv_usec = strtol(valBuf,NULL,10); |
121 |
+ |
122 |
+ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "rxstart_s")) |
123 |
+ s->StartRecv.tv_sec = strtol(valBuf,NULL,10); |
124 |
+ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "rxstart_us")) |
125 |
+ s->StartRecv.tv_usec = strtol(valBuf,NULL,10); |
126 |
+ |
127 |
+ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "rxstop_s")) |
128 |
+ s->StopRecv.tv_sec = strtol(valBuf,NULL,10); |
129 |
+ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "rxstop_us")) |
130 |
+ s->StopRecv.tv_usec = strtol(valBuf,NULL,10); |
131 |
+ |
132 |
+ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "totrtt")) |
133 |
+ s->TotalRoundtrip = (UINT32) strtoul(valBuf,NULL,10); |
134 |
+ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "nortt")) |
135 |
+ s->nRoundtrips = (UINT32) strtoul(valBuf,NULL,10); |
136 |
+ |
137 |
+ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "email")) |
138 |
+ { |
139 |
+ strncpy(s->email, valBuf, sizeof(s->email)); |
140 |
+ s->email[sizeof(s->email)-1] = '\0'; |
141 |
+ } |
142 |
|
143 |
- if (CopyTagField(valBuf, 101, line + 6, "pwd")) |
144 |
- strcpy(s->pwd, valBuf); |
145 |
+ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "pwd")) |
146 |
+ { |
147 |
+ strncpy(s->pwd, valBuf, sizeof(s->pwd)); |
148 |
+ s->pwd[sizeof(s->pwd)-1] = '\0'; |
149 |
+ } |
150 |
|
151 |
+ stats_ptr = NULL; |
152 |
return 0; |
153 |
- |
154 |
} |
155 |
|
156 |
|
157 |
diff -Nurp tptest-3.1.7/engine/tpcommon.h tptest-3.1.7.new/engine/tpcommon.h |
158 |
--- tptest-3.1.7/engine/tpcommon.h 2002-09-16 10:10:42.000000000 -0400 |
159 |
+++ tptest-3.1.7.new/engine/tpcommon.h 2009-06-11 16:40:10.000000000 -0400 |
160 |
@@ -43,7 +43,7 @@ int SameTag(char *s1, char *s2); |
161 |
int CopyTagField(char *destp, int destSize, char *srcp, char *pname); |
162 |
int GetSessionFromLine(char *, TPEngine *); |
163 |
char * CreateSessionLine(TPEngine *, char *); |
164 |
-int GetStatsFromLine(char *, TPStats *); |
165 |
+int GetStatsFromLine(const char *, TPStats *); |
166 |
char * CreateLineFromStats(TPStats *, char *); |
167 |
int ReplyCode(char *); |
168 |
void TVAddUSec(struct timeval *, int); |