Committer  : entrope
CVSROOT    : /cvsroot/undernet-ircu
Module     : ircu2.10
Commit time: 2004-05-15 15:19:20 UTC

Modified files:
     ChangeLog ircd/IPcheck.c

Log message:

Forward port IPcheck bug fixes and asserts from 2.10.11.

---------------------- diff included ----------------------
Index: ircu2.10/ChangeLog
diff -u ircu2.10/ChangeLog:1.401 ircu2.10/ChangeLog:1.402
--- ircu2.10/ChangeLog:1.401    Sat May 15 07:50:07 2004
+++ ircu2.10/ChangeLog  Sat May 15 08:19:09 2004
@@ -1,3 +1,21 @@
+2004-05-15  hikari <[EMAIL PROTECTED]>
+
+       [Original ChangeLog date: 2003-07-13 -MDP]
+       
+       * ircd/IPcheck.c: Fixed (another) overflow problem in
+       ip_registry_check_local()
+
+       [Original ChangeLog date: 2003-06-29 -MDP]
+
+       * ircd/IPcheck.c: Fixed overflow problem in
+       ip_registry_connect_fail()
+
+2004-05-15 Isomer <[EMAIL PROTECTED]>
+
+       [Original ChangeLog date: 2003-05-02 -MDP]
+       
+       * ircd/IPcheck.c: Added assert()'s to check for underflow
+
 2004-05-15  Kevin L Mitchell  <[EMAIL PROTECTED]>
 
        [Original ChangeLog date: 2003-11-22 -MDP]
Index: ircu2.10/ircd/IPcheck.c
diff -u ircu2.10/ircd/IPcheck.c:1.29 ircu2.10/ircd/IPcheck.c:1.30
--- ircu2.10/ircd/IPcheck.c:1.29        Sat May 15 07:01:49 2004
+++ ircu2.10/ircd/IPcheck.c     Sat May 15 08:19:09 2004
@@ -16,7 +16,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: IPcheck.c,v 1.29 2004/05/15 14:01:49 entrope Exp $
+ * $Id: IPcheck.c,v 1.30 2004/05/15 15:19:09 entrope Exp $
  *
  * 
  * This file should be edited in a window with a width of 141 characters
@@ -244,7 +244,10 @@
    * Don't allow more then 255 connects from one IP number, ever
    */
   if (0 == ++entry->connected)
+  {
+    entry->connected--;
     return 0;
+  }
 
   if (CONNECTED_SINCE(entry->last_connect) > IPCHECK_CLONE_PERIOD)
     entry->attempts = 0;
@@ -266,6 +269,7 @@
 #ifdef NOTHROTTLE 
     return 1;
 #else
+    assert(entry->connected > 0);
     --entry->connected;
     return 0;
 #endif        
@@ -337,7 +341,10 @@
 {
   struct IPRegistryEntry* entry = ip_registry_find(addr);
   if (entry)
-    --entry->attempts;
+  {
+    if (0 == --entry->attempts)
+      ++entry->attempts;
+  }
 }
 
 /*
@@ -392,6 +399,7 @@
   /*
    * If this was the last one, set `last_connect' to disconnect time (used for 
expiration)
    */
+  /* assert(entry->connected > 0); */
   if (0 == --entry->connected) {
     if (CONNECTED_SINCE(entry->last_connect) > IPCHECK_CLONE_LIMIT * 
IPCHECK_CLONE_PERIOD) {
       /*
----------------------- End of diff -----------------------

Reply via email to