Author: toad
Date: 2008-02-29 22:39:55 +0000 (Fri, 29 Feb 2008)
New Revision: 18269

Modified:
   trunk/freenet/src/freenet/support/DoubleTokenBucket.java
   trunk/freenet/src/freenet/support/TokenBucket.java
Log:
Don't allow forceGrab(negative). Log an error and refuse to execute it if it 
happens.

Modified: trunk/freenet/src/freenet/support/DoubleTokenBucket.java
===================================================================
--- trunk/freenet/src/freenet/support/DoubleTokenBucket.java    2008-02-29 
22:27:51 UTC (rev 18268)
+++ trunk/freenet/src/freenet/support/DoubleTokenBucket.java    2008-02-29 
22:39:55 UTC (rev 18269)
@@ -42,6 +42,10 @@

        public synchronized void forceGrab(long tokens) {
                addTokens();
+               if(tokens <= 0) {
+                       Logger.error(this, "forceGrab("+tokens+") - negative 
value!!", new Exception("error"));
+                       return;
+               }
                long thisMax = maxForced - curForced;
                if(tokens > thisMax) {
                        if(logMINOR) Logger.minor(this, "Limiting force-grab to 
"+thisMax+" tokens was "+tokens);

Modified: trunk/freenet/src/freenet/support/TokenBucket.java
===================================================================
--- trunk/freenet/src/freenet/support/TokenBucket.java  2008-02-29 22:27:51 UTC 
(rev 18268)
+++ trunk/freenet/src/freenet/support/TokenBucket.java  2008-02-29 22:39:55 UTC 
(rev 18269)
@@ -54,6 +54,10 @@
         * @param tokens The number of tokens to remove.
         */
        public synchronized void forceGrab(long tokens) {
+               if(tokens <= 0) {
+                       Logger.error(this, "forceGrab("+tokens+") - negative 
value!!", new Exception("error"));
+                       return;
+               }
                addTokens();
                current -= tokens;
                if(current > max) current = max;


Reply via email to