Author: markt
Date: Tue Aug 18 13:03:11 2015
New Revision: 1696414

URL: http://svn.apache.org/r1696414
Log:
Fix HTTP2 6.1 test case failure.
Validate data frame padding before sending notifications for that frame in case 
the padding is invalid. In that case we do not want to process the data part of 
the frame.

Modified:
    tomcat/trunk/java/org/apache/coyote/http2/Http2Parser.java

Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2Parser.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2Parser.java?rev=1696414&r1=1696413&r2=1696414&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Http2Parser.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2Parser.java Tue Aug 18 
13:03:11 2015
@@ -168,12 +168,22 @@ class Http2Parser {
         ByteBuffer dest = output.getInputByteBuffer(streamId, dataLength);
         if (dest == null) {
             swallow(streamId, dataLength, false);
+            // Process padding before sending any notifications in case padding
+            // is invalid.
+            if (padLength > 0) {
+                swallow(streamId, padLength, true);
+            }
             if (endOfStream) {
                 output.receiveEndOfStream(streamId);
             }
         } else {
             synchronized (dest) {
                 input.fill(true, dest, dataLength);
+                // Process padding before sending any notifications in case
+                // padding is invalid.
+                if (padLength > 0) {
+                    swallow(streamId, padLength, true);
+                }
                 if (endOfStream) {
                     output.receiveEndOfStream(streamId);
                 }
@@ -181,7 +191,6 @@ class Http2Parser {
             }
         }
         if (padLength > 0) {
-            swallow(streamId, padLength, true);
             output.swallowedPadding(streamId, padLength);
         }
     }



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

Reply via email to