You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2015/02/06 18:58:12 UTC

svn commit: r1657907 - /tomcat/trunk/java/org/apache/coyote/http11/Http11InputBuffer.java

Author: markt
Date: Fri Feb  6 17:58:12 2015
New Revision: 1657907

URL: http://svn.apache.org/r1657907
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=57544
Fix potential infinite loop if pos == 0
Only need to update lastValid & pos if bytes have been moved.

Modified:
    tomcat/trunk/java/org/apache/coyote/http11/Http11InputBuffer.java

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11InputBuffer.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11InputBuffer.java?rev=1657907&r1=1657906&r2=1657907&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11InputBuffer.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11InputBuffer.java Fri Feb  6 17:58:12 2015
@@ -348,15 +348,10 @@ public class Http11InputBuffer implement
         request.recycle();
 
         // Copy leftover bytes to the beginning of the buffer
-        if (lastValid - pos > 0) {
-            int npos = 0;
-            int opos = pos;
-            while (lastValid - opos > opos - npos) {
-                System.arraycopy(buf, opos, buf, npos, opos - npos);
-                npos += pos;
-                opos += pos;
-            }
-            System.arraycopy(buf, opos, buf, npos, lastValid - opos);
+        if (lastValid - pos > 0 && pos > 0) {
+            System.arraycopy(buf, pos, buf, 0, lastValid - pos);
+            lastValid = lastValid - pos;
+            pos = 0;
         }
 
         // Recycle filters
@@ -365,8 +360,6 @@ public class Http11InputBuffer implement
         }
 
         // Reset pointers
-        lastValid = lastValid - pos;
-        pos = 0;
         lastActiveFilter = -1;
         parsingHeader = true;
         swallowInput = true;



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org