summaryrefslogtreecommitdiff
path: root/src/modules/m_joinflood.cpp
diff options
context:
space:
mode:
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-11-24 08:29:05 +0000
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-11-24 08:29:05 +0000
commitf5f20e377386228abc4ca176b25b244171f21f14 (patch)
tree5c2e5b4e569abe18a514843d1562627a5904b089 /src/modules/m_joinflood.cpp
parentad9cb625d950f8157c5ff4d6c89bfd9d672b2c05 (diff)
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
Diffstat (limited to 'src/modules/m_joinflood.cpp')
-rw-r--r--src/modules/m_joinflood.cpp12
1 files changed, 5 insertions, 7 deletions
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);