From 808abdb6d7732cb43c91eefd524f5eaa9f1cbab3 Mon Sep 17 00:00:00 2001 From: Ben Doherty Date: Thu, 29 Apr 2021 14:42:07 -0700 Subject: [PATCH] Fix memory leak inside utils::details::SafeString (#3871) --- libs/utils/include/utils/NameComponentManager.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libs/utils/include/utils/NameComponentManager.h b/libs/utils/include/utils/NameComponentManager.h index a9c2df0094..62201d113a 100644 --- a/libs/utils/include/utils/NameComponentManager.h +++ b/libs/utils/include/utils/NameComponentManager.h @@ -26,6 +26,8 @@ #include #include +#include + namespace utils { class EntityManager; @@ -37,8 +39,7 @@ public: explicit SafeString(const char* str) noexcept : mCStr(strdup(str)) { } SafeString(SafeString&& rhs) noexcept : mCStr(rhs.mCStr) { rhs.mCStr = nullptr; } SafeString& operator=(SafeString&& rhs) noexcept { - mCStr = rhs.mCStr; - rhs.mCStr = nullptr; + std::swap(mCStr, rhs.mCStr); return *this; } ~SafeString() { free((void*)mCStr); }