]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/helperfuncs.cpp
Fix segfault on GRELOADMODULE
[user/henk/code/inspircd.git] / src / helperfuncs.cpp
index ffa30fb840799e8f4cdc025f1cbfd8a1170a3290..bba8dc8dca480f220d4b3a48f666ce2d360c0f24 100644 (file)
@@ -396,13 +396,18 @@ std::string InspIRCd::TimeString(time_t curtime)
 void InspIRCd::AddExtBanChar(char c)
 {
        std::string &tok = Config->data005;
-       std::string::size_type ebpos;
+       std::string::size_type ebpos = tok.find(" EXTBAN=,");
 
-       if ((ebpos = tok.find(" EXTBAN=,")) == std::string::npos)
+       if (ebpos == std::string::npos)
        {
                tok.append(" EXTBAN=,");
                tok.push_back(c);
        }
        else
-               tok.insert(ebpos + 9, 1, c);
+       {
+               ebpos += 9;
+               while (isalpha(tok[ebpos]) && tok[ebpos] < c)
+                       ebpos++;
+               tok.insert(ebpos, 1, c);
+       }
 }