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