From 69d29af0971f4fc0c421b837a5712eeb0d68f956 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Thu, 9 May 2019 11:17:41 +0800 Subject: [PATCH] Fix '+' char not decoded to space correctly Closes #10606. --- src/base/bittorrent/tracker.cpp | 4 ++-- src/webui/webapplication.cpp | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/base/bittorrent/tracker.cpp b/src/base/bittorrent/tracker.cpp index 3462a7ab4..b04f005ad 100644 --- a/src/base/bittorrent/tracker.cpp +++ b/src/base/bittorrent/tracker.cpp @@ -143,8 +143,8 @@ void Tracker::respondToAnnounceRequest() const QByteArray nameComponent = midView(param, 0, sepPos); const QByteArray valueComponent = midView(param, (sepPos + 1)); - const QString paramName = QString::fromUtf8(QByteArray::fromPercentEncoding(nameComponent)); - const QByteArray paramValue = QByteArray::fromPercentEncoding(valueComponent); + const QString paramName = QString::fromUtf8(QByteArray::fromPercentEncoding(nameComponent).replace('+', ' ')); + const QByteArray paramValue = QByteArray::fromPercentEncoding(valueComponent).replace('+', ' '); queryParams[paramName] = paramValue; } diff --git a/src/webui/webapplication.cpp b/src/webui/webapplication.cpp index 4e07bc499..e6d668a57 100644 --- a/src/webui/webapplication.cpp +++ b/src/webui/webapplication.cpp @@ -415,6 +415,7 @@ Http::Response WebApplication::processRequest(const Http::Request &request, cons m_request = request; m_env = env; m_params.clear(); + if (m_request.method == Http::METHOD_GET) { // Parse GET parameters using namespace Utils::ByteArray; @@ -425,8 +426,8 @@ Http::Response WebApplication::processRequest(const Http::Request &request, cons const QByteArray nameComponent = midView(param, 0, sepPos); const QByteArray valueComponent = midView(param, (sepPos + 1)); - const QString paramName = QString::fromUtf8(QByteArray::fromPercentEncoding(nameComponent)); - const QString paramValue = QString::fromUtf8(QByteArray::fromPercentEncoding(valueComponent)); + const QString paramName = QString::fromUtf8(QByteArray::fromPercentEncoding(nameComponent).replace('+', ' ')); + const QString paramValue = QString::fromUtf8(QByteArray::fromPercentEncoding(valueComponent).replace('+', ' ')); m_params[paramName] = paramValue; } }