summaryrefslogtreecommitdiffstats
path: root/src/network
diff options
context:
space:
mode:
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
commit89467428f8173524083fd7d2cca9c2985141d567 (patch)
tree3a0ec433685a1ae3dc1e6ba1e5f28e00f6de0a7c /src/network
parent9377039fe5efaf2d0e55a978cf63e902faf353eb (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.cpp4
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");