Updated Branches: refs/heads/master 0cb47fa4a -> c134071e8
TS-2408: fix double free of proxy.config.admin.user_id Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/c134071e Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/c134071e Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/c134071e Branch: refs/heads/master Commit: c134071e860a11c01d7ce1cd8914d890b9311d34 Parents: 0cb47fa Author: James Peach <[email protected]> Authored: Thu Nov 28 10:17:58 2013 -0800 Committer: James Peach <[email protected]> Committed: Thu Nov 28 10:18:41 2013 -0800 ---------------------------------------------------------------------- CHANGES | 2 ++ lib/ts/ink_resource.h | 2 +- proxy/Main.cc | 4 +--- 3 files changed, 4 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c134071e/CHANGES ---------------------------------------------------------------------- diff --git a/CHANGES b/CHANGES index 4f1ec3a..78f7103 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,8 @@ Changes with Apache Traffic Server 4.2.0 + *) [TS-2408] Fix double free of proxy.config.admin.user_id. + *) [TS-2396] UrlRewrite.cc does not free the queue correctly. Author: Yu Qing <[email protected]> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c134071e/lib/ts/ink_resource.h ---------------------------------------------------------------------- diff --git a/lib/ts/ink_resource.h b/lib/ts/ink_resource.h index 0fdf2e2..ba4f17a 100644 --- a/lib/ts/ink_resource.h +++ b/lib/ts/ink_resource.h @@ -81,7 +81,7 @@ public: /// Construct and initialized with memory for @a n instances of @a T. explicit xptr(size_t n) - : m_ptr(ats_malloc(sizeof(T) * n)) + : m_ptr((T *)ats_malloc(sizeof(T) * n)) { } /// Destructor - free memory held by this instance. http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c134071e/proxy/Main.cc ---------------------------------------------------------------------- diff --git a/proxy/Main.cc b/proxy/Main.cc index 431d94c..318e825 100644 --- a/proxy/Main.cc +++ b/proxy/Main.cc @@ -1362,7 +1362,7 @@ main(int /* argc ATS_UNUSED */, char **argv) if (!num_task_threads) TS_ReadConfigInteger(num_task_threads, "proxy.config.task_threads"); - char *user = (char *)ats_malloc(MAX_LOGIN); + xptr<char> user(MAX_LOGIN + 1); *user = '\0'; admin_user_p = ((REC_ERR_OKAY == TS_ReadConfigString(user, "proxy.config.admin.user_id", MAX_LOGIN)) && @@ -1379,7 +1379,6 @@ main(int /* argc ATS_UNUSED */, char **argv) PreserveCapabilities(); change_uid_gid(user); RestrictCapabilities(); - ats_free(user); } # endif @@ -1678,7 +1677,6 @@ main(int /* argc ATS_UNUSED */, char **argv) if (admin_user_p) { change_uid_gid(user); DebugCapabilities("server"); - ats_free(user); } # endif
