From: Chris Porter Date: Sun, 24 Jan 2016 18:13:24 +0000 (+0000) Subject: CHANSERV: fix use-after-free in chanserv_cleanupdb X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/commitdiff_plain/d7f0cf84aa0c45de73dc72f3b24461127377239f?ds=sidebyside CHANSERV: fix use-after-free in chanserv_cleanupdb --- diff --git a/chanserv/chanserv_cleanupdb.c b/chanserv/chanserv_cleanupdb.c index fb141f27..238556c4 100644 --- a/chanserv/chanserv_cleanupdb.c +++ b/chanserv/chanserv_cleanupdb.c @@ -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; } } }