You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by jp...@apache.org on 2015/01/31 01:10:15 UTC
trafficserver git commit: TS-3353: fix traffic_via memory bug
Repository: trafficserver
Updated Branches:
refs/heads/master 10a9eed13 -> b37266a9e
TS-3353: fix traffic_via memory bug
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/b37266a9
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/b37266a9
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/b37266a9
Branch: refs/heads/master
Commit: b37266a9eeb88687e2c1cc24777232cd49be5fb8
Parents: 10a9eed
Author: Bin Zeng <bz...@linkedin.com>
Authored: Fri Jan 30 16:07:13 2015 -0800
Committer: James Peach <jp...@apache.org>
Committed: Fri Jan 30 16:09:30 2015 -0800
----------------------------------------------------------------------
CHANGES | 5 ++++-
cmd/traffic_via/traffic_via.cc | 19 ++++++++++---------
2 files changed, 14 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b37266a9/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 14963f3..48f50ee 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,8 +1,11 @@
-*- coding: utf-8 -*-
Changes with Apache Traffic Server 5.3.0
+ *) [TS-3353] fix traffic_via memory bug.
+ Author: Bin Zeng <bz...@linkedin.com>
+
*) [TS-3319] Adapt to OpenSSL 1.0.2 certificate callback.
-
+
*) [TS-1435] return full content if client is a muti range request
Author: Lars Svensson <la...@vmail.se>
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b37266a9/cmd/traffic_via/traffic_via.cc
----------------------------------------------------------------------
diff --git a/cmd/traffic_via/traffic_via.cc b/cmd/traffic_via/traffic_via.cc
index af7cb64..89eb0a8 100644
--- a/cmd/traffic_via/traffic_via.cc
+++ b/cmd/traffic_via/traffic_via.cc
@@ -230,12 +230,12 @@ printViaHeader(const char * header)
static TSMgmtError
decodeViaHeader(const char * str)
{
- size_t viaHdrLength;
- ats_scoped_str tmp(strdup(str));
- char * Via = &tmp[0];
+ size_t viaHdrLength = strlen(str);
+ char tmp[viaHdrLength + 2];
+ char * Via = tmp;
- viaHdrLength = strlen(Via);
- printf("Via header is %s, Length is %zu\n",Via, viaHdrLength);
+ strncpy(Via, str, viaHdrLength + 1); // Safe to call strcpy.
+ printf("Via header is %s, Length is %zu\n", Via, viaHdrLength);
//Via header inside square brackets
if (Via[0] == '[' && Via[viaHdrLength-1] == ']') {
@@ -244,14 +244,15 @@ decodeViaHeader(const char * str)
Via[viaHdrLength] = '\0'; //null terminate the string after trimming
}
+ if (viaHdrLength == 5) {
+ Via = strcat(Via, " "); //Add one space character before decoding via header
+ ++viaHdrLength;
+ }
+
if (viaHdrLength == 24 || viaHdrLength == 6) {
//Decode via header
printViaHeader(Via);
return TS_ERR_OKAY;
- } else if(viaHdrLength == 5) {
- Via = strcat(Via," "); //Add one space character before decoding via header
- printViaHeader(Via);
- return TS_ERR_OKAY;
}
//Invalid header size, come out.
printf("\nInvalid VIA header. VIA header length should be 6 or 24 characters\n");