aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSpp <spp@jorge.gr>2013-02-23 17:24:21 +0100
committerSpp <spp@jorge.gr>2013-02-23 19:18:09 +0100
commit22353a012ff506f9388355b0d464bfafaf610902 (patch)
treea5ea1d5e3286d07a7e98314d8754ddcb60b9bbe3 /src
parent56e32aac82fe6d18280f6202e3e44d6935fb4b4c (diff)
Core/RBAC: Fix mem leak
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Accounts/AccountMgr.cpp11
-rw-r--r--src/server/game/Accounts/AccountMgr.h1
2 files changed, 12 insertions, 0 deletions
diff --git a/src/server/game/Accounts/AccountMgr.cpp b/src/server/game/Accounts/AccountMgr.cpp
index 8c08a9ae202..596f7f5ceb9 100644
--- a/src/server/game/Accounts/AccountMgr.cpp
+++ b/src/server/game/Accounts/AccountMgr.cpp
@@ -27,7 +27,18 @@
AccountMgr::AccountMgr()
{
+}
+
+AccountMgr::~AccountMgr()
+{
+ for (RBACPermissionsContainer::iterator itr = _permissions.begin(); itr != _permissions.end(); ++itr)
+ delete itr->second;
+
+ for (RBACRolesContainer::iterator itr = _roles.begin(); itr != _roles.end(); ++itr)
+ delete itr->second;
+ for (RBACGroupsContainer::iterator itr = _groups.begin(); itr != _groups.end(); ++itr)
+ delete itr->second;
}
AccountOpResult AccountMgr::CreateAccount(std::string username, std::string password)
diff --git a/src/server/game/Accounts/AccountMgr.h b/src/server/game/Accounts/AccountMgr.h
index 440e012f1fc..2c07172723d 100644
--- a/src/server/game/Accounts/AccountMgr.h
+++ b/src/server/game/Accounts/AccountMgr.h
@@ -45,6 +45,7 @@ class AccountMgr
private:
AccountMgr();
+ ~AccountMgr();
public:
AccountOpResult CreateAccount(std::string username, std::string password);