From 246e71fe450f8de8b455a7a3164501223b2d7bb0 Mon Sep 17 00:00:00 2001 From: psychon Date: Mon, 24 Mar 2008 22:22:41 +0000 Subject: [PATCH] Fix a memory leak in rehashing The fake user rehashing uses was leaked completly (BAD) Thanks to SilverLeo for reporting and x-x for making me track this one down :P git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@992 726aef4b-f618-498e-8847-2d620e286838 --- znc.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/znc.cpp b/znc.cpp index d22c6c3f..1f24d468 100644 --- a/znc.cpp +++ b/znc.cpp @@ -1008,14 +1008,20 @@ bool CZNC::DoRehash(CString& sError) sError = "Invalid user [" + pUser->GetUserName() + "] " + sErr; DEBUG_ONLY(cout << "CUser::Clone() failed in rehash" << endl); } + pUser->SetBeingDeleted(true); + delete pUser; + pUser = NULL; } else if (!AddUser(pUser, sErr)) { sError = "Invalid user [" + pUser->GetUserName() + "] " + sErr; } if (!sError.empty()) { CUtils::PrintError(sError); - pUser->SetBeingDeleted(true); - delete pUser; + if (pUser) { + pUser->SetBeingDeleted(true); + delete pUser; + pUser = NULL; + } return false; }