From da683da5b024be98c7f87d0067f452528750fc77 Mon Sep 17 00:00:00 2001 From: prozacx Date: Mon, 12 Sep 2005 03:45:57 +0000 Subject: [PATCH] Added try/catch for LoadModule git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@484 726aef4b-f618-498e-8847-2d620e286838 --- Modules.cpp | 6 +++++- User.cpp | 4 +++- UserSock.cpp | 9 ++++++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/Modules.cpp b/Modules.cpp index a4623c84..64578767 100644 --- a/Modules.cpp +++ b/Modules.cpp @@ -859,7 +859,11 @@ bool CModules::ReloadModule(const CString& sModule, const CString& sArgs, CUser* return false; } - if (!LoadModule(sMod, sArgs, pUser, sRetMsg)) { + try { + if (!LoadModule(sMod, sArgs, pUser, sRetMsg)) { + return false; + } + } catch(...) { return false; } diff --git a/User.cpp b/User.cpp index daeed5d4..d0ae3c51 100644 --- a/User.cpp +++ b/User.cpp @@ -121,7 +121,9 @@ bool CUser::Clone(const CUser& User, CString& sErrorRet) { if (!pCurMod) { CString sModRet; - vCurMods.LoadModule(pNewMod->GetModName(), "", this, sModRet); + try { + vCurMods.LoadModule(pNewMod->GetModName(), "", this, sModRet); + } catch (...) {} } } diff --git a/UserSock.cpp b/UserSock.cpp index 3ec4c878..ef38cc2f 100644 --- a/UserSock.cpp +++ b/UserSock.cpp @@ -810,7 +810,14 @@ void CUserSock::UserCommand(const CString& sLine) { } CString sModRet; - m_pUser->GetModules().LoadModule(sMod, sArgs, m_pUser, sModRet); + + try { + m_pUser->GetModules().LoadModule(sMod, sArgs, m_pUser, sModRet); + } catch (CException e) { + PutStatus("Unable to load module [" + sMod + "] [" + sModRet + "]"); + return; + } + PutStatus(sModRet); #else PutStatus("Unable to load [" + sMod + "] Modules are not enabled.");