diff --git a/src/network/access/qhttp2connection.cpp b/src/network/access/qhttp2connection.cpp index e425e5faea2..2839b3b0bde 100644 --- a/src/network/access/qhttp2connection.cpp +++ b/src/network/access/qhttp2connection.cpp @@ -859,8 +859,13 @@ QHttp2Connection::createStreamInternal() const quint32 streamID = m_nextStreamID; if (size_t(m_maxConcurrentStreams) <= size_t(numActiveLocalStreams())) return { QHttp2Connection::CreateStreamError::MaxConcurrentStreamsReached }; - m_nextStreamID += 2; - return { createStreamInternal_impl(streamID) }; + + if (QHttp2Stream *ptr = createStreamInternal_impl(streamID)) { + m_nextStreamID += 2; + return {ptr}; + } + // Connection could be broken, we could've ran out of memory, we don't know + return { QHttp2Connection::CreateStreamError::UnknownError }; } QHttp2Stream *QHttp2Connection::createStreamInternal_impl(quint32 streamID) diff --git a/src/network/access/qhttp2connection_p.h b/src/network/access/qhttp2connection_p.h index 9c8470dda93..e75eb8169fe 100644 --- a/src/network/access/qhttp2connection_p.h +++ b/src/network/access/qhttp2connection_p.h @@ -212,6 +212,7 @@ public: MaxConcurrentStreamsReached, StreamIdsExhausted, ReceivedGOAWAY, + UnknownError, }; Q_ENUM(CreateStreamError)