diff options
author | Shane Kearns <shane.kearns@accenture.com> | 2011-12-09 11:49:50 (GMT) |
---|---|---|
committer | Shane Kearns <shane.kearns@accenture.com> | 2011-12-12 14:26:04 (GMT) |
commit | 214ba9e83a99bdd750510d83e1743b7ce62d9a2b (patch) | |
tree | fdfcc07497a015f7f8a33bd4cee7d658f0c7d527 /src/network/access | |
parent | 09449825551798a09c2bf18daea18e8e2abe93bc (diff) | |
download | Qt-214ba9e83a99bdd750510d83e1743b7ce62d9a2b.zip Qt-214ba9e83a99bdd750510d83e1743b7ce62d9a2b.tar.gz Qt-214ba9e83a99bdd750510d83e1743b7ce62d9a2b.tar.bz2 |
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/access')
-rw-r--r-- | src/network/access/qnetworkaccessauthenticationmanager.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/network/access/qnetworkaccessauthenticationmanager.cpp b/src/network/access/qnetworkaccessauthenticationmanager.cpp index 1b15cf9..b618ccc 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() |