summaryrefslogtreecommitdiffstats
path: root/src/core/net
diff options
context:
space:
mode:
authorMartin Negyokru <negyokru@inf.u-szeged.hu>2023-06-06 15:53:46 +0200
committerMartin Negyokru <negyokru@inf.u-szeged.hu>2023-06-12 19:33:38 +0000
commit4a79ac857cb675abbd989f5b9ae21dea8016e74e (patch)
tree89f486ff7bd83db7264a1dff7f110c681d878693 /src/core/net
parentfc86aaa6c0eda5246eb1d03c1c53884c64104976 (diff)
Validate QNetworkProxy::applicationProxy configs
Invalid proxy settings may result in a crash in chromium. Use chromium's helper function that validates proxy configs instead of constructing net::ProxyServer manually. On invalid input, result will be a `SCHEME_INVALID` ProxyServer. Fixes: QTBUG-113992 Pick-to: 6.5 6.6 Change-Id: I1745ae3c3cd4da40d3d8b92a14f752ac9b3f8d31 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/core/net')
-rw-r--r--src/core/net/proxy_config_service_qt.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/core/net/proxy_config_service_qt.cpp b/src/core/net/proxy_config_service_qt.cpp
index 70bcb59b4..fcce08550 100644
--- a/src/core/net/proxy_config_service_qt.cpp
+++ b/src/core/net/proxy_config_service_qt.cpp
@@ -16,14 +16,15 @@
net::ProxyServer ProxyConfigServiceQt::fromQNetworkProxy(const QNetworkProxy &qtProxy)
{
- net::HostPortPair hostPortPair(qtProxy.hostName().toStdString(), qtProxy.port());
+ std::string host = qtProxy.hostName().toStdString();
+ uint16_t port = qtProxy.port();
switch (qtProxy.type()) {
case QNetworkProxy::Socks5Proxy:
- return net::ProxyServer(net::ProxyServer::SCHEME_SOCKS5, hostPortPair);
+ return net::ProxyServer::FromSchemeHostAndPort(net::ProxyServer::SCHEME_SOCKS5, host, port);
case QNetworkProxy::HttpProxy:
case QNetworkProxy::HttpCachingProxy:
case QNetworkProxy::FtpCachingProxy:
- return net::ProxyServer(net::ProxyServer::SCHEME_HTTP, hostPortPair);
+ return net::ProxyServer::FromSchemeHostAndPort(net::ProxyServer::SCHEME_HTTP, host, port);
case QNetworkProxy::NoProxy:
case QNetworkProxy::DefaultProxy:
return net::ProxyServer(net::ProxyServer::SCHEME_DIRECT, net::HostPortPair());