Author: markt
Date: Fri Mar 24 23:07:16 2017
New Revision: 1788560
URL: http://svn.apache.org/viewvc?rev=1788560&view=rev
Log:
Streams can't depend on themselves.
Found with the h2spec tool written by Moto Ishizawa.
Modified:
tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java
tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties
Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java?rev=1788560&r1=1788559&r2=1788560&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java
(original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Fri Mar
24 23:07:16 2017
@@ -1402,6 +1402,10 @@ class Http2UpgradeHandler extends Abstra
@Override
public void reprioritise(int streamId, int parentStreamId,
boolean exclusive, int weight) throws Http2Exception {
+ if (streamId == parentStreamId) {
+ throw new
ConnectionException(sm.getString("upgradeHandler.dependency.invalid",
+ getConnectionId(), Integer.valueOf(streamId)),
Http2Error.PROTOCOL_ERROR);
+ }
Stream stream = getStream(streamId, false);
if (stream == null) {
stream = createRemoteStream(streamId);
Modified: tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties?rev=1788560&r1=1788559&r2=1788560&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties Fri Mar
24 23:07:16 2017
@@ -105,6 +105,7 @@ upgradeHandler.allocate.debug=Connection
upgradeHandler.allocate.left=Connection [{0}], Stream [{1}], [{2}] bytes
unallocated - trying to allocate to children
upgradeHandler.allocate.recipient=Connection [{0}], Stream [{1}], potential
recipient [{2}] with weight [{3}]
upgradeHandler.connectionError=Connection error
+upgradeHandler.dependency.invalid=Connection [{0}], Stream [{1}], Streams may
not depend on themselves
upgradeHandler.goaway.debug=Connection [{0}], Goaway, Last stream [{1}], Error
code [{2}], Debug data [{3}]
upgradeHandler.init=Connection [{0}], State [{1}]
upgradeHandler.initialWindowSize.invalid=Connection [{0}], Illegal value of
[{1}] ignored for initial window size
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]