فهرست منبع

* Fixed a dcc[] loop in rebalance_roles() which didn't account for free'd elements

svn: 2067
Bryan Drewery 21 سال پیش
والد
کامیت
8be7efb6f4
1فایلهای تغییر یافته به همراه2 افزوده شده و 2 حذف شده
  1. 2 2
      src/mod/channels.mod/channels.c

+ 2 - 2
src/mod/channels.mod/channels.c

@@ -309,7 +309,7 @@ static void rebalance_roles()
   char tmp[10] = "";
 
   for (i = 0; i < (unsigned) dcc_total; i++) {
-    if (dcc[i].user && dcc[i].user->bot && bot_hublevel(dcc[i].user) == 999) {
+    if (dcc[i].type && dcc[i].user && dcc[i].user->bot && bot_hublevel(dcc[i].user) == 999) {
       ba = (struct bot_addr *) get_user(&USERENTRY_BOTADDR, dcc[i].user);
       if (ba && (ba->roleid > 0) && (ba->roleid < 5))
         r[(ba->roleid - 1)]++;
@@ -331,7 +331,7 @@ static void rebalance_roles()
   }
   while (r[hNdx] - r[lNdx] >= 2) {
     for (i = 0; i < (unsigned) dcc_total; i++) {
-      if (dcc[i].user && dcc[i].user->bot && bot_hublevel(dcc[i].user) == 999) {
+      if (dcc[i].type && dcc[i].user && dcc[i].user->bot && bot_hublevel(dcc[i].user) == 999) {
         ba = (struct bot_addr *) get_user(&USERENTRY_BOTADDR, dcc[i].user);
         if (ba && (ba->roleid == (hNdx + 1))) {
           ba->roleid = lNdx + 1;