diff options
author | Øystein Heskestad <oystein.heskestad@qt.io> | 2024-03-15 16:13:56 +0100 |
---|---|---|
committer | Øystein Heskestad <oystein.heskestad@qt.io> | 2024-03-18 20:28:36 +0100 |
commit | 89467428f8173524083fd7d2cca9c2985141d567 (patch) | |
tree | 3a0ec433685a1ae3dc1e6ba1e5f28e00f6de0a7c /src/network | |
parent | 9377039fe5efaf2d0e55a978cf63e902faf353eb (diff) |
QHttp2Connection: Send error for CONTINUATION without preceding data
Send connection error type PROTOCOL_ERROR when receivng CONTINUATION
frames without any data received from previous HEADERS or PUSH_PROMISE
frames, instead of assert.
Task-number: QTBUG-122375
Pick-to: 6.7
Change-Id: Ib14e4610692dc4832b1f3e99dca497d9baf3d9d3
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/network')
-rw-r--r-- | src/network/access/qhttp2connection.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/network/access/qhttp2connection.cpp b/src/network/access/qhttp2connection.cpp index 5df31fa36c..1ce25a444a 100644 --- a/src/network/access/qhttp2connection.cpp +++ b/src/network/access/qhttp2connection.cpp @@ -1551,7 +1551,9 @@ void QHttp2Connection::handleWINDOW_UPDATE() void QHttp2Connection::handleCONTINUATION() { Q_ASSERT(inboundFrame.type() == FrameType::CONTINUATION); - Q_ASSERT(!continuedFrames.empty()); // HEADERS frame must be already in. + if (continuedFrames.empty()) + return connectionError(PROTOCOL_ERROR, + "CONTINUATION without a preceding HEADERS or PUSH_PROMISE"); if (inboundFrame.streamID() != continuedFrames.front().streamID()) return connectionError(PROTOCOL_ERROR, "CONTINUATION on invalid stream"); |