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 -----------------------