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.");