Gentoo Archives: gentoo-commits

From: "Chris Reffett (creffett)" <creffett@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in net-analyzer/tptest/files: tptest-3.1.7-getstatsfromlinevuln.patch
Date: Fri, 04 Oct 2013 20:51:50
Message-Id: 20131004205142.A4AB72004C@flycatcher.gentoo.org
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);