]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Added checks for empty ident/host/gecos in the chg* and set* commands. Patch by Stskeeps
authorspecial <special@e03df62e-2008-0410-955e-edbf42e46eb7>
Tue, 26 Jun 2007 06:15:14 +0000 (06:15 +0000)
committerspecial <special@e03df62e-2008-0410-955e-edbf42e46eb7>
Tue, 26 Jun 2007 06:15:14 +0000 (06:15 +0000)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7412 e03df62e-2008-0410-955e-edbf42e46eb7

src/modules/m_chghost.cpp
src/modules/m_chgident.cpp
src/modules/m_chgname.cpp
src/modules/m_sethost.cpp
src/modules/m_setident.cpp
src/modules/m_setname.cpp

index c5e114575c090b13efa98923ae363976dd226fa8..d914fd2a250bb4dd46b590c74dc4e52e7e641c52 100644 (file)
@@ -43,6 +43,12 @@ class cmd_chghost : public command_t
                                return CMD_FAILURE;
                        }
                }
+               if (!*parameters[0])
+               {
+                       user->WriteServ("NOTICE %s :*** CHGHOST: Host must be specified", user->nick);
+                       return CMD_FAILURE;
+               }
+               
                if ((parameters[1] - x) > 63)
                {
                        user->WriteServ("NOTICE %s :*** CHGHOST: Host too long",user->nick);
index 21107f1245116c02f95f6c92d4a98f30db4cdad5..e3067fe5622d84eccc04ed2cf71e80728642b8c1 100644 (file)
@@ -38,6 +38,11 @@ class cmd_chgident : public command_t
                        return CMD_FAILURE;
                }
 
+               if (!*parameters[1])
+               {
+                       user->WriteServ("NOTICE %s :*** CHGIDENT: Needs non-zero length ident", user->nick);
+                       return CMD_FAILURE;
+               }
                if(!ServerInstance->IsIdent(parameters[1]))
                {
                        user->WriteServ("NOTICE %s :*** Invalid characters in ident", user->nick);
index 2e11715268d513f2a41dea5cfcdf8da9b6b4bd29..f3ea9cc25ad5a6a2e0d2f8294982123d24f94507 100644 (file)
@@ -37,7 +37,11 @@ class cmd_chgname : public command_t
                        user->WriteServ("401 %s %s :No such nick/channel", user->nick, parameters[0]);
                        return CMD_FAILURE;
                }
-
+               if (!*parameters[1])
+               {
+                       user->WriteServ("NOTICE %s :*** GECOS is too short", user->nick);
+                       return CMD_FAILURE;
+               }
                if (IS_LOCAL(dest))
                {
                        dest->ChangeName(parameters[1]);
index 490b630164bed6f9a7c6817ad072d58c5b9e083b..0719bd648812245e7759bb5aac3bbb36fce99fd8 100644 (file)
@@ -42,6 +42,11 @@ class cmd_sethost : public command_t
                                return CMD_FAILURE;
                        }
                }
+               if (len == 0)
+               {
+                       user->WriteServ("NOTICE %s :*** SETHOST: Host too short", user->nick);
+                       return CMD_FAILURE;
+               }
                if (len > 64)
                {
                        user->WriteServ("NOTICE %s :*** SETHOST: Host too long",user->nick);
index 4bd19fd7a3a9dbe0e6361477168e25f2e6a525b7..a98592299aa39615a55a8ab9cc5454a2e6ac54f5 100644 (file)
@@ -39,6 +39,11 @@ class cmd_setident : public command_t
                        user->WriteServ("NOTICE %s :*** Invalid characters in ident", user->nick);
                        return CMD_FAILURE;
                }
+               if (len == 0)
+               {
+                       user->WriteServ("NOTICE %s :*** SETIDENT: Ident too short", user->nick);
+                       return CMD_FAILURE;
+               }
                if (len > IDENTMAX)
                {
                        user->WriteServ("NOTICE %s :*** Ident is too long", user->nick);
index 8804f185d98ce79e00abcdb5966e13540b697776..3ececbbb3ad85f2b530ca410e185e6814ba79b9a 100644 (file)
@@ -36,7 +36,13 @@ class cmd_setname : public command_t
                {
                        line = line + std::string(parameters[i]) + " ";
                }
+               
                line = line + std::string(parameters[pcnt-1]);
+               if (line.length() == 0)
+               {
+                       user->WriteServ("NOTICE %s :*** GECOS too short", user->nick);
+                       return CMD_FAILURE;
+               }
                user->ChangeName(line.c_str());
 
                return CMD_SUCCESS;