bz#2099267, backport patch to fix download problem from Settings

This commit is contained in:
Than Ngo 2022-06-21 14:26:30 +02:00
parent aebce69e3b
commit 48c1244f2d
2 changed files with 48 additions and 0 deletions

View File

@ -0,0 +1,43 @@
diff --git a/src/network/access/http2/http2protocol_p.h b/src/network/access/http2/http2protocol_p.h
index b0af5aa91921bf5229e2d54284687bafb1969eb1..ed5f2bf561f2bd62c6ef7fd1fde29e867d374603 100644
--- a/src/network/access/http2/http2protocol_p.h
+++ b/src/network/access/http2/http2protocol_p.h
@@ -133,9 +133,6 @@ enum Http2PredefinedParameters
maxPayloadSize = (1 << 24) - 1, // HTTP/2 6.5.2
defaultSessionWindowSize = 65535, // HTTP/2 6.5.2
- // Using 1000 (rather arbitrarily), just to
- // impose *some* upper limit:
- maxPeerConcurrentStreams = 1000,
maxConcurrentStreams = 100 // HTTP/2, 6.5.2
};
diff --git a/src/network/access/qhttp2protocolhandler.cpp b/src/network/access/qhttp2protocolhandler.cpp
index f513139304bba375ea3c345c74f2c889b5a13938..21f1c91e29513acff83c45b6717cd5aa25609d62 100644
--- a/src/network/access/qhttp2protocolhandler.cpp
+++ b/src/network/access/qhttp2protocolhandler.cpp
@@ -393,7 +393,8 @@ bool QHttp2ProtocolHandler::sendRequest()
initReplyFromPushPromise(message, key);
}
- const auto streamsToUse = std::min<quint32>(maxConcurrentStreams - activeStreams.size(),
+ const auto streamsToUse = std::min<quint32>(maxConcurrentStreams > activeStreams.size()
+ ? maxConcurrentStreams - activeStreams.size() : 0,
requests.size());
auto it = requests.begin();
for (quint32 i = 0; i < streamsToUse; ++i) {
@@ -1084,13 +1085,8 @@ bool QHttp2ProtocolHandler::acceptSetting(Http2::Settings identifier, quint32 ne
QMetaObject::invokeMethod(this, "resumeSuspendedStreams", Qt::QueuedConnection);
}
- if (identifier == Settings::MAX_CONCURRENT_STREAMS_ID) {
- if (newValue > maxPeerConcurrentStreams) {
- connectionError(PROTOCOL_ERROR, "SETTINGS invalid number of concurrent streams");
- return false;
- }
+ if (identifier == Settings::MAX_CONCURRENT_STREAMS_ID)
maxConcurrentStreams = newValue;
- }
if (identifier == Settings::MAX_FRAME_SIZE_ID) {
if (newValue < Http2::minPayloadLimit || newValue > Http2::maxPayloadSize) {

View File

@ -148,6 +148,7 @@ Patch100: kde-5.15-rollup-20220304.patch.gz
Source100: kde-5.15-rollup-20220304.patch.gz
Patch101: qtbase-everywhere-src-5.15.4-cve-2021-38593.patch
Patch102: qtbase-everywhere-src-5.15.2-CVE-2022-2525.patch
Patch103: qt5-qtbase-fix-invalid-number-of-concurrent-stream.patch
# Do not check any files in %%{_qt5_plugindir}/platformthemes/ for requires.
# Those themes are there for platform integration. If the required libraries are
@ -423,6 +424,7 @@ Qt5 libraries used for drawing widgets and OpenGL items.
%patch100 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
# move some bundled libs to ensure they're not accidentally used
pushd src/3rdparty
@ -1096,6 +1098,9 @@ fi
%changelog
* Tue Jun 21 2022 Than Ngo <than@redhat.com> - 5.15.3-3
- bz#2099267, backport patch to fix download problem from Settings
* Mon May 30 2022 Than Ngo <than@redhat.com> - 5.15.3-2
- Fixed bz#1994724, CVE-2021-38593