]> jfr.im git - solanum.git/blobdiff - ircd/s_conf.c
Merge pull request #303 from edk0/modreload-uaf
[solanum.git] / ircd / s_conf.c
index e0fa68026638ab88041f0e2978a65b94b3d03801..2021185127571eafcfd324040f1d9b4a16d08af7 100644 (file)
@@ -1135,7 +1135,7 @@ deactivate_conf(struct ConfItem *aconf, rb_dlink_node *ptr, time_t now)
                        del_from_resv_hash(aconf->host, aconf);
                        break;
        }
-       if (aconf->clients > 0 || (aconf->lifetime != 0 && now < aconf->lifetime))
+       if (aconf->lifetime != 0 && now < aconf->lifetime)
        {
                aconf->status |= CONF_ILLEGAL;
        }
@@ -1143,7 +1143,10 @@ deactivate_conf(struct ConfItem *aconf, rb_dlink_node *ptr, time_t now)
        {
                if (aconf->lifetime != 0)
                        rb_dlinkDestroy(ptr, &prop_bans);
-               free_conf(aconf);
+               if (aconf->clients == 0)
+                       free_conf(aconf);
+               else
+                       aconf->status |= CONF_ILLEGAL;
        }
 }