diff options
author | Albert Astals Cid <albert.astals@canonical.com> | 2014-09-18 17:59:51 +0200 |
---|---|---|
committer | Albert Astals Cid <albert.astals@canonical.com> | 2014-09-22 13:42:03 +0200 |
commit | a966b19b520cdbcc515ed90fe5e544d6f58af9ec (patch) | |
tree | 2d0e63209309e1c4bf5b38e783b8d14994aed53e | |
parent | c6c0eb084ab31768c7d16d00b3cb14a30ee71918 (diff) |
Fix crash in QNetworkAccessCacheBackend::closeDownstreamChannel
device is private, always null and class has no friends, so no need to have it at all
Change-Id: I320d47f1a712a3202c08b494563533e29d185501
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
3 files changed, 13 insertions, 7 deletions
diff --git a/src/network/access/qnetworkaccesscachebackend.cpp b/src/network/access/qnetworkaccesscachebackend.cpp index 890032fe47..ea3d6b0cce 100644 --- a/src/network/access/qnetworkaccesscachebackend.cpp +++ b/src/network/access/qnetworkaccesscachebackend.cpp @@ -52,7 +52,6 @@ QT_BEGIN_NAMESPACE QNetworkAccessCacheBackend::QNetworkAccessCacheBackend() : QNetworkAccessBackend() - , device(0) { } @@ -125,11 +124,6 @@ bool QNetworkAccessCacheBackend::sendCacheContents() void QNetworkAccessCacheBackend::closeDownstreamChannel() { - if (operation() == QNetworkAccessManager::GetOperation) { - device->close(); - delete device; - device = 0; - } } void QNetworkAccessCacheBackend::closeUpstreamChannel() diff --git a/src/network/access/qnetworkaccesscachebackend_p.h b/src/network/access/qnetworkaccesscachebackend_p.h index 69765e893e..58f5aac83f 100644 --- a/src/network/access/qnetworkaccesscachebackend_p.h +++ b/src/network/access/qnetworkaccesscachebackend_p.h @@ -75,7 +75,6 @@ public: private: bool sendCacheContents(); - QIODevice *device; }; diff --git a/tests/auto/network/access/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp b/tests/auto/network/access/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp index 125eab2f8c..2bdcf5b777 100644 --- a/tests/auto/network/access/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp +++ b/tests/auto/network/access/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp @@ -42,6 +42,7 @@ #include <QtTest/QtTest> #include <QtNetwork/QNetworkAccessManager> +#include <QtNetwork/QNetworkReply> #ifndef QT_NO_BEARERMANAGEMENT #include <QtNetwork/QNetworkConfigurationManager> #endif @@ -61,6 +62,7 @@ public: private slots: void networkAccessible(); + void alwaysCacheRequest(); }; tst_QNetworkAccessManager::tst_QNetworkAccessManager() @@ -126,5 +128,16 @@ void tst_QNetworkAccessManager::networkAccessible() #endif } +void tst_QNetworkAccessManager::alwaysCacheRequest() +{ + QNetworkAccessManager manager; + + QNetworkRequest req; + req.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysCache); + QNetworkReply *reply = manager.get(req); + reply->close(); + delete reply; +} + QTEST_MAIN(tst_QNetworkAccessManager) #include "tst_qnetworkaccessmanager.moc" |