summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Goetz <Markus.Goetz@nokia.com>2010-08-12 15:29:29 (GMT)
committerMarkus Goetz <Markus.Goetz@nokia.com>2010-08-12 15:35:10 (GMT)
commit677b96b3bfcbccae978f0d63f7e16a35783c0eec (patch)
tree360c83a75cde7acef54ad6e38c3afbfaaaeaf829
parent97f7299854197c6093aaefc1ec174209d68892e7 (diff)
downloadQt-677b96b3bfcbccae978f0d63f7e16a35783c0eec.zip
Qt-677b96b3bfcbccae978f0d63f7e16a35783c0eec.tar.gz
Qt-677b96b3bfcbccae978f0d63f7e16a35783c0eec.tar.bz2
QNAM HTTP: Fix crash related to aborted uploads
Task-number: QTBUG-12285
-rw-r--r--src/network/access/qhttpnetworkconnection.cpp2
-rw-r--r--src/network/access/qhttpnetworkconnectionchannel.cpp4
2 files changed, 5 insertions, 1 deletions
diff --git a/src/network/access/qhttpnetworkconnection.cpp b/src/network/access/qhttpnetworkconnection.cpp
index 9e2b85e..ae4d257 100644
--- a/src/network/access/qhttpnetworkconnection.cpp
+++ b/src/network/access/qhttpnetworkconnection.cpp
@@ -653,6 +653,8 @@ void QHttpNetworkConnectionPrivate::removeReply(QHttpNetworkReply *reply)
// is the reply associated the currently processing of this channel?
if (channels[i].reply == reply) {
channels[i].reply = 0;
+ channels[i].request = QHttpNetworkRequest();
+ channels[i].resendCurrent = false;
if (!reply->isFinished() && !channels[i].alreadyPipelinedRequests.isEmpty()) {
// the reply had to be prematurely removed, e.g. it was not finished
diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp
index d3576dd..6437f6f 100644
--- a/src/network/access/qhttpnetworkconnectionchannel.cpp
+++ b/src/network/access/qhttpnetworkconnectionchannel.cpp
@@ -647,8 +647,10 @@ void QHttpNetworkConnectionChannel::allDone()
// finished request.
// Note that this may trigger a segfault at some other point. But then we can fix the underlying
// problem.
- if (!resendCurrent)
+ if (!resendCurrent) {
+ request = QHttpNetworkRequest();
reply = 0;
+ }
// move next from pipeline to current request
if (!alreadyPipelinedRequests.isEmpty()) {