summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/network/access/qhttp2connection.cpp9
-rw-r--r--src/network/access/qhttp2connection_p.h1
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)