summaryrefslogtreecommitdiff
path: root/src/network
diff options
context:
space:
mode:
authorShane Kearns <shane.kearns@accenture.com>2011-12-09 11:49:50 +0000
committerShane Kearns <shane.kearns@accenture.com>2011-12-12 14:26:04 +0000
commit214ba9e83a99bdd750510d83e1743b7ce62d9a2b (patch)
treefdfcc07497a015f7f8a33bd4cee7d658f0c7d527 /src/network
parent09449825551798a09c2bf18daea18e8e2abe93bc (diff)
downloadqt4-tools-214ba9e83a99bdd750510d83e1743b7ce62d9a2b.tar.gz
Fix null pointer dereference in NTLM authentication
If NTLM authentication is required for the URL with an empty path, then QNetworkAuthenticationCache::findClosestMatch(url.path()) returns 0. e.g. "http://10.1.2.3". Return a default constructed credential in this case. Change-Id: I84ad3b308ee3f74fbbac9ad0f11dbdc66047b50b Reviewed-by: Robin Burchell <robin+qt@viroteck.net> Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com> (cherry picked from commit b830c9cededf995fab1b0919a81658ceaec8d422)
Diffstat (limited to 'src/network')
-rw-r--r--src/network/access/qnetworkaccessauthenticationmanager.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/network/access/qnetworkaccessauthenticationmanager.cpp b/src/network/access/qnetworkaccessauthenticationmanager.cpp
index 1b15cf9cdf..b618ccc945 100644
--- a/src/network/access/qnetworkaccessauthenticationmanager.cpp
+++ b/src/network/access/qnetworkaccessauthenticationmanager.cpp
@@ -283,9 +283,12 @@ QNetworkAccessAuthenticationManager::fetchCachedCredentials(const QUrl &url,
QNetworkAuthenticationCache *auth =
static_cast<QNetworkAuthenticationCache *>(authenticationCache.requestEntryNow(cacheKey));
- QNetworkAuthenticationCredential cred = *auth->findClosestMatch(url.path());
+ QNetworkAuthenticationCredential *cred = auth->findClosestMatch(url.path());
+ QNetworkAuthenticationCredential ret;
+ if (cred)
+ ret = *cred;
authenticationCache.releaseEntry(cacheKey);
- return cred;
+ return ret;
}
void QNetworkAccessAuthenticationManager::clearCache()