]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
A little more error checking on the banmask etc
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Wed, 27 Apr 2005 16:27:20 +0000 (16:27 +0000)
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Wed, 27 Apr 2005 16:27:20 +0000 (16:27 +0000)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1218 e03df62e-2008-0410-955e-edbf42e46eb7

src/modules/m_timedbans.cpp

index 5649a9e374c8e0a26ae50e4dc05b9b5ee92e3190..f75791b2c8f1e5e6342a043004f4f98092373414 100644 (file)
@@ -48,6 +48,11 @@ void handle_tban(char **parameters, int pcnt, userrec *user)
                std::string cm = Srv->ChanMode(user,channel);
                if ((cm == "%") || (cm == "@"))
                {
+                       if (!Srv->IsValidMask(parameters[2]))
+                       {
+                               Srv->SendServ(user->fd,"NOTICE "+std::string(user->nick)+" :Invalid ban mask");
+                               return;
+                       }
                        for (timedbans::iterator i = TimedBanList.begin(); i < TimedBanList.end(); i++)
                        {
                                if ((!strcasecmp(i->mask.c_str(),parameters[2])) && (!strcasecmp(i->channel.c_str(),parameters[0])))
@@ -94,11 +99,13 @@ class ModuleTimedBans : public Module
        {
                Srv = new Server;
                Srv->AddCommand("TBAN",handle_tban,0,3,"m_timedbans.so");
+               TimedBanList.clear();
        }
        
        virtual ~ModuleTimedBans()
        {
                delete Srv;
+               TimedBanList.clear();
        }
 
        virtual void OnBackgroundTimer(time_t curtime)