]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Paranoia: Check for UUID collision on UID reciept, remove both clients if a collision...
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>
Mon, 27 Aug 2007 02:17:48 +0000 (02:17 +0000)
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>
Mon, 27 Aug 2007 02:17:48 +0000 (02:17 +0000)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7858 e03df62e-2008-0410-955e-edbf42e46eb7

src/modules/m_spanningtree/treesocket1.cpp

index 90f6152cd51005a4ad588467af62334efc5ff473..7b26052541cb87e64fea62134707fc01e6e3e4a6 100644 (file)
@@ -932,6 +932,16 @@ bool TreeSocket::ParseUID(const std::string &source, std::deque<std::string> &pa
                return true;
        }
 
+       userrec *u = this->Instance->FindUUID(params[0]);
+
+       if (u)
+       {
+               /* barf! */
+               userrec::QuitUser(this->Instance, u, "UID collision (?!)");
+               this->WriteLine(std::string(":")+this->Instance->Config->ServerName+" KILL "+params[0]+" :Invalid client introduction (UID collision (?!))");
+               return true;
+       }
+
        /* Check parameters for validity before introducing the client, discovered by dmb */
        if (!age)
        {