Repository: trafficserver
Updated Branches:
  refs/heads/master 51ce5405d -> c135dbf1b


TS-3205 ASAN complaints on config reload freeing malloc'ed memory with delete[]


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/c135dbf1
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/c135dbf1
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/c135dbf1

Branch: refs/heads/master
Commit: c135dbf1bb58a4b15c18e898e8706abbc7c6436d
Parents: 51ce540
Author: Leif Hedstrom <[email protected]>
Authored: Fri Nov 21 16:39:36 2014 -0700
Committer: Leif Hedstrom <[email protected]>
Committed: Fri Nov 21 16:39:39 2014 -0700

----------------------------------------------------------------------
 CHANGES          |  3 +++
 mgmt/Rollback.cc | 20 ++++++++++----------
 2 files changed, 13 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c135dbf1/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index d1c7e13..ccd3742 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,9 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache Traffic Server 5.2.0
 
+  *) [TS-3205] ASAN complaints on config reload freeing malloc'ed memory with
+   delete[].
+
   *) [TS-3074] Fix FreeBSD regression.
 
   *) [TS-3191] Reduce confusion with HTTP_TUNNEL_STATIC_PRODUCER.

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c135dbf1/mgmt/Rollback.cc
----------------------------------------------------------------------
diff --git a/mgmt/Rollback.cc b/mgmt/Rollback.cc
index 9243043..5a722ea 100644
--- a/mgmt/Rollback.cc
+++ b/mgmt/Rollback.cc
@@ -66,7 +66,7 @@ Rollback::Rollback(const char *baseFileName, bool 
root_access_needed_)
 
   // Copy the file name
   fileNameLen = strlen(baseFileName);
-  fileName = new char[fileNameLen + 1];
+  fileName = (char*)ats_malloc(fileNameLen + 1);
   ink_strlcpy(fileName, baseFileName, fileNameLen + 1);
 
   // TODO: Use the runtime directory for storing mutable data
@@ -125,8 +125,8 @@ Rollback::Rollback(const char *baseFileName, bool 
root_access_needed_)
           //  remove it from the backup verision q
           versionQ.remove(versionQ.tail);
         }
-        delete[]highestSeenStr;
-        delete[]activeVerStr;
+        ats_free(highestSeenStr);
+        ats_free(activeVerStr);
       } else {
         needZeroLength = true;
       }
@@ -210,7 +210,7 @@ Rollback::Rollback(const char *baseFileName, bool 
root_access_needed_)
 
 Rollback::~Rollback()
 {
-  delete[]fileName;
+  ats_free(fileName);
 }
 
 
@@ -498,9 +498,10 @@ UPDATE_CLEANUP:
     unlink(nextVersion);
   }
 
-  delete[]currentVersion_local;
-  delete[]activeVersion;
-  delete[]nextVersion;
+  ats_free(currentVersion_local);
+  ats_free(activeVersion);
+  ats_free(nextVersion);
+
   return returnCode;
 }
 
@@ -798,7 +799,6 @@ Rollback::removeVersion(version_t version)
 RollBackCodes
 Rollback::removeVersion_ml(version_t version)
 {
-
   struct stat statInfo;
   char *versionPath;
   versionInfo *removeInfo = NULL;
@@ -811,7 +811,7 @@ Rollback::removeVersion_ml(version_t version)
 
   versionPath = createPathStr(version);
   if (unlink(versionPath) < 0) {
-    delete[]versionPath;
+    ats_free(versionPath);
     mgmt_log(stderr, "[Rollback::removeVersion] Unlink failed on %s version 
%d: %s\n",
              fileName, version, strerror(errno));
     return SYS_CALL_ERROR_ROLLBACK;
@@ -835,7 +835,7 @@ Rollback::removeVersion_ml(version_t version)
 
   numVersions--;
 
-  delete[]versionPath;
+  ats_free(versionPath);
   return OK_ROLLBACK;
 }
 

Reply via email to