diff options
| author | Mårten Nordheim <marten.nordheim@qt.io> | 2024-10-15 16:01:38 +0200 |
|---|---|---|
| committer | Mårten Nordheim <marten.nordheim@qt.io> | 2024-10-20 19:32:16 +0200 |
| commit | 238f656d613fc100a8d17ccc980843b39c0056eb (patch) | |
| tree | 7f410f893138b4a36551a52b298eedd6aa2ebff6 /src | |
| parent | 195a35dbfb2453ae37d9541c82745c5795fe8b9c (diff) | |
Http2: Always return an error on error
Instead of returning a nullptr in a potential OOM case.
Pick-to: 6.8
Change-Id: Ib438eaa7550d193cb1207a5d3e48a78b882fa56e
Reviewed-by: Matthias Rauter <matthias.rauter@qt.io>
Diffstat (limited to 'src')
| -rw-r--r-- | src/network/access/qhttp2connection.cpp | 9 | ||||
| -rw-r--r-- | src/network/access/qhttp2connection_p.h | 1 |
2 files changed, 8 insertions, 2 deletions
diff --git a/src/network/access/qhttp2connection.cpp b/src/network/access/qhttp2connection.cpp index e39e772d4fa..b3b3526af68 100644 --- a/src/network/access/qhttp2connection.cpp +++ b/src/network/access/qhttp2connection.cpp @@ -878,8 +878,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 aa7f046cea6..025d403b80c 100644 --- a/src/network/access/qhttp2connection_p.h +++ b/src/network/access/qhttp2connection_p.h @@ -213,6 +213,7 @@ public: MaxConcurrentStreamsReached, StreamIdsExhausted, ReceivedGOAWAY, + UnknownError, }; Q_ENUM(CreateStreamError) |
