You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2011/05/24 04:18:27 UTC
svn commit: r1126829 - in /trafficserver/traffic/trunk: CHANGES
mgmt/stats/StatProcessor.cc mgmt/stats/StatType.cc mgmt/stats/StatType.h
Author: zwoop
Date: Tue May 24 02:18:27 2011
New Revision: 1126829
URL: http://svn.apache.org/viewvc?rev=1126829&view=rev
Log:
TS-797 Wrong delete used in stats processor
Modified:
trafficserver/traffic/trunk/CHANGES
trafficserver/traffic/trunk/mgmt/stats/StatProcessor.cc
trafficserver/traffic/trunk/mgmt/stats/StatType.cc
trafficserver/traffic/trunk/mgmt/stats/StatType.h
Modified: trafficserver/traffic/trunk/CHANGES
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/CHANGES?rev=1126829&r1=1126828&r2=1126829&view=diff
==============================================================================
--- trafficserver/traffic/trunk/CHANGES (original)
+++ trafficserver/traffic/trunk/CHANGES Tue May 24 02:18:27 2011
@@ -1,6 +1,8 @@
-*- coding: utf-8 -*-
Changes with Apache Traffic Server 2.1.9
+ *) [TS-797] Wrong delete used in stats processor.
+
*) [TS-769] Fixed infinite loop when getting a 505 response from the
origin and the connection is keep-alive. Now downgrading keep-alive
all the time along with the protocol.
Modified: trafficserver/traffic/trunk/mgmt/stats/StatProcessor.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/mgmt/stats/StatProcessor.cc?rev=1126829&r1=1126828&r2=1126829&view=diff
==============================================================================
--- trafficserver/traffic/trunk/mgmt/stats/StatProcessor.cc (original)
+++ trafficserver/traffic/trunk/mgmt/stats/StatProcessor.cc Tue May 24 02:18:27 2011
@@ -86,7 +86,7 @@ startElement(void *userData, const char
break;
case EXPR_TAG:
- exprContent = NEW(new char[BUFSIZ * 10]); // Will free up at endElement
+ exprContent = (char*)xmalloc(BUFSIZ * 10);
memset(exprContent, 0, BUFSIZ * 10);
break;
@@ -129,8 +129,7 @@ endElement(void *userData, const char *n
break;
case EXPR_TAG:
- statObject->assignExpr(exprContent);
- delete(exprContent);
+ statObject->assignExpr(exprContent); // This hands over ownership of exprContent
// fall through
default:
@@ -155,15 +154,11 @@ charDataHandler(void *userData, const XM
}
if (currentTag == EXPR_TAG) {
-
strncat(exprContent, content, ((BUFSIZ * 10) - strlen(exprContent) - 1));
} else {
-
statObject->assignDst(content, nodeVar, sumClusterVar);
-
}
-
}
Modified: trafficserver/traffic/trunk/mgmt/stats/StatType.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/mgmt/stats/StatType.cc?rev=1126829&r1=1126828&r2=1126829&view=diff
==============================================================================
--- trafficserver/traffic/trunk/mgmt/stats/StatType.cc (original)
+++ trafficserver/traffic/trunk/mgmt/stats/StatType.cc Tue May 24 02:18:27 2011
@@ -507,7 +507,7 @@ StatObject::assignDst(const char *str, b
* ------------------------
*/
void
-StatObject::assignExpr(const char *str)
+StatObject::assignExpr(char *str)
{
StatExprToken *statToken = NULL;
@@ -515,7 +515,8 @@ StatObject::assignExpr(const char *str)
Debug(MODULE_INIT, "EXPRESSION: %s\n", str);
}
ink_debug_assert(m_expr_string == NULL);
- m_expr_string = xstrdup(str);
+ // We take ownership here
+ m_expr_string = str;
Tokenizer exprTok(" ");
exprTok.Initialize(str);
Modified: trafficserver/traffic/trunk/mgmt/stats/StatType.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/mgmt/stats/StatType.h?rev=1126829&r1=1126828&r2=1126829&view=diff
==============================================================================
--- trafficserver/traffic/trunk/mgmt/stats/StatType.h (original)
+++ trafficserver/traffic/trunk/mgmt/stats/StatType.h Tue May 24 02:18:27 2011
@@ -208,7 +208,7 @@ public:
};
void clean();
void assignDst(const char *, bool, bool);
- void assignExpr(const char *);
+ void assignExpr(char *);
StatExprToken *StatBinaryEval(StatExprToken *, char, StatExprToken *, bool cluster = false);
StatFloat NodeStatEval(bool cluster);