]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/commands/cmd_nick.cpp
Fix trampling on memory in Z/G/K/ELine.
[user/henk/code/inspircd.git] / src / commands / cmd_nick.cpp
index 52e562d0279a4e40456adad3bb1c83d64d56ed4f..5a7ed846af4baf2183edf924d4a3aab870394bd8 100644 (file)
@@ -2,7 +2,7 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  InspIRCd: (C) 2002-2007 InspIRCd Development Team
+ *  InspIRCd: (C) 2002-2008 InspIRCd Development Team
  * See: http://www.inspircd.org/wiki/index.php/Credits
  *
  * This program is free but copyrighted software; see
@@ -25,7 +25,7 @@ extern "C" DllExport Command* init_command(InspIRCd* Instance)
  * for the client introduction code in here, youre in the wrong place.
  * You need to look in the spanningtree module for this!
  */
-CmdResult CommandNick::Handle (const char** parameters, int pcnt, User *user)
+CmdResult CommandNick::Handle (const char** parameters, int, User *user)
 {
        char oldnick[NICKMAX];
 
@@ -60,7 +60,7 @@ CmdResult CommandNick::Handle (const char** parameters, int pcnt, User *user)
        }
        else
        {
-               QLine* mq = ServerInstance->XLines->matches_qline(parameters[0]);
+               XLine* mq = ServerInstance->XLines->MatchesLine("Q",parameters[0]);
                if (mq)
                {
                        ServerInstance->SNO->WriteToSnoMask('x', "Q-Lined nickname %s from %s!%s@%s: %s", parameters[0], user->nick, user->ident, user->host, mq->reason);
@@ -147,13 +147,14 @@ CmdResult CommandNick::Handle (const char** parameters, int pcnt, User *user)
        else if (user->registered == REG_NICKUSER)
        {
                /* user is registered now, bit 0 = USER command, bit 1 = sent a NICK command */
-               int MOD_RESULT = 0;
+               MOD_RESULT = 0;
                FOREACH_RESULT(I_OnUserRegister,OnUserRegister(user));
                if (MOD_RESULT > 0)
                        return CMD_FAILURE;
        }
        else if (user->registered == REG_ALL)
        {
+               user->IncreasePenalty(10);
                FOREACH_MOD(I_OnUserPostNick,OnUserPostNick(user,oldnick));
        }
 
@@ -161,7 +162,7 @@ CmdResult CommandNick::Handle (const char** parameters, int pcnt, User *user)
 
 }
 
-CmdResult CommandNick::HandleInternal(const unsigned int id, const std::deque<classbase*> &parameters)
+CmdResult CommandNick::HandleInternal(const unsigned int id, const std::deque<classbase*>&)
 {
        allowinvalid = (id != 0);
        return CMD_SUCCESS;