]> jfr.im git - irc/quakenet/newserv.git/blobdiff - chanserv/chanserv_cleanupdb.c
CHANSERV: fix use-after-free in chanserv_cleanupdb
[irc/quakenet/newserv.git] / chanserv / chanserv_cleanupdb.c
index fb141f27a57bee3a2ff4c1f76d29d895ad8608fa..238556c428cfae531d03a808ff436580ad7f1e76 100644 (file)
@@ -161,6 +161,7 @@ static void cleanupdb_real(DBConn *dbconn, void *arg) {
         cs_log(NULL, "CLEANUPDB inactive channel %s", cip->name?cip->name->content:"??");
         cs_removechannel(rcp, "Channel deleted due to lack of activity.");
         chansvaped++;
+        continue;
       }
       
       /* Get rid of any dead chanlev entries */
@@ -175,11 +176,12 @@ static void cleanupdb_real(DBConn *dbconn, void *arg) {
             freeregchanuser(rcup);
           }
         }
+      }
 
-        if (cs_removechannelifempty(NULL, rcp)) {
-          /* logged+parted by cs_removechannelifempty */
-          chansempty++;
-        }
+      if (cs_removechannelifempty(NULL, rcp)) {
+        /* logged+parted by cs_removechannelifempty */
+        chansempty++;
+        continue;
       }
     }
   }