]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Fix crash when calling rmServer() with an invalid index 3461/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Fri, 26 Feb 2016 10:17:29 +0000 (11:17 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Fri, 26 Feb 2016 10:17:29 +0000 (11:17 +0100)
Fix #3460.

pdns/dnsdist-lua.cc

index d11463478747cd19eabb370ff5ee8edab7353714..fdde7611be35a54151acb18a7db6f4a93fe52956 100644 (file)
@@ -394,12 +394,14 @@ vector<std::function<void(void)>> setupLua(bool client, const std::string& confi
                         }
                         else {
                           int idx = boost::get<int>(var);
-                          server = states[idx];
+                          server = states.at(idx);
                         }
                         auto localPools = g_pools.getCopy();
                         for (const string& poolName : server->pools) {
                           removeServerFromPool(localPools, poolName, server);
                         }
+                        /* the server might also be in the default pool */
+                        removeServerFromPool(localPools, "", server);
                         g_pools.setState(localPools);
                         states.erase(remove(states.begin(), states.end(), server), states.end());
                         g_dstates.setState(states);