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; }
