From f5f20e377386228abc4ca176b25b244171f21f14 Mon Sep 17 00:00:00 2001 From: w00t Date: Mon, 24 Nov 2008 08:29:05 +0000 Subject: Fix crashes in m_joinflood and m_nickflood, found by Schitz0, introduced by commit f123b4f0081360e96dad620e5a143f983c1f3a04 (time()) conversion - the settings classes had pointers that were *never* initialised... git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10819 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_joinflood.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'src/modules/m_joinflood.cpp') diff --git a/src/modules/m_joinflood.cpp b/src/modules/m_joinflood.cpp index 40a007c2c..be33debcc 100644 --- a/src/modules/m_joinflood.cpp +++ b/src/modules/m_joinflood.cpp @@ -19,19 +19,17 @@ */ class joinfloodsettings : public classbase { + private: + InspIRCd* ServerInstance; public: - int secs; int joins; time_t reset; time_t unlocktime; int counter; bool locked; - InspIRCd* ServerInstance; - - joinfloodsettings() : secs(0), joins(0) {}; - joinfloodsettings(int b, int c) : secs(b), joins(c) + joinfloodsettings(InspIRCd *Instance, int b, int c) : ServerInstance(Instance), secs(b), joins(c) { reset = ServerInstance->Time() + secs; counter = 0; @@ -144,7 +142,7 @@ class JoinFlood : public ModeHandler if (!channel->GetExt("joinflood", dummy)) { parameter = ConvToStr(njoins) + ":" +ConvToStr(nsecs); - joinfloodsettings *f = new joinfloodsettings(nsecs,njoins); + joinfloodsettings *f = new joinfloodsettings(ServerInstance, nsecs, njoins); channel->Extend("joinflood", f); channel->SetMode('j', true); channel->SetModeParam('j', parameter.c_str(), true); @@ -167,7 +165,7 @@ class JoinFlood : public ModeHandler joinfloodsettings* f; channel->GetExt("joinflood", f); delete f; - f = new joinfloodsettings(nsecs,njoins); + f = new joinfloodsettings(ServerInstance, nsecs, njoins); channel->Shrink("joinflood"); channel->Extend("joinflood", f); channel->SetModeParam('j', cur_param.c_str(), false); -- cgit v1.2.3