diff --git a/src/network/access/qhttp2connection.cpp b/src/network/access/qhttp2connection.cpp index 01adc6ad487..64e10724fa7 100644 --- a/src/network/access/qhttp2connection.cpp +++ b/src/network/access/qhttp2connection.cpp @@ -540,8 +540,9 @@ QHttp2Connection *QHttp2Connection::createDirectServerConnection(QIODevice *sock QH2Expected QHttp2Connection::createStream() { - Q_ASSERT(m_nextStreamID <= lastValidStreamID); Q_ASSERT(m_connectionType == Type::Client); // This overload is just for clients + if (m_nextStreamID > lastValidStreamID) + return { QHttp2Connection::CreateStreamError::StreamIdsExhausted }; return createStreamInternal(); } diff --git a/src/network/access/qhttp2connection_p.h b/src/network/access/qhttp2connection_p.h index 6733468bfae..5d525537e58 100644 --- a/src/network/access/qhttp2connection_p.h +++ b/src/network/access/qhttp2connection_p.h @@ -193,6 +193,7 @@ class Q_NETWORK_EXPORT QHttp2Connection : public QObject public: enum class CreateStreamError { MaxConcurrentStreamsReached, + StreamIdsExhausted, ReceivedGOAWAY, }; Q_ENUM(CreateStreamError)