]> jfr.im git - irc/quakenet/newserv.git/commitdiff
CHANSERV: fix use-after-free in chanserv_cleanupdb
authorChris Porter <redacted>
Sun, 24 Jan 2016 18:13:24 +0000 (18:13 +0000)
committerChris Porter <redacted>
Sun, 24 Jan 2016 18:13:24 +0000 (18:13 +0000)
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;
       }
     }
   }