summaryrefslogtreecommitdiff
path: root/debian/patches/fix_crash_when_a_network_request_is_aborted_while_forwarding_data.patch
diff options
context:
space:
mode:
authorLisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>2014-10-14 15:51:45 -0300
committerLisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>2014-10-14 15:51:45 -0300
commit7a6b5a2d25c25fdddbfd667f5c96460d06c8a1b4 (patch)
treed08b5e670a560b32046fb92cf2b02a60a13e594d /debian/patches/fix_crash_when_a_network_request_is_aborted_while_forwarding_data.patch
parentc24e2b032601b9cfe1277a5ca823808558d8c4fe (diff)
downloadqt5webkit-7a6b5a2d25c25fdddbfd667f5c96460d06c8a1b4.tar.gz
Backport three patches to fix crashes
Diffstat (limited to 'debian/patches/fix_crash_when_a_network_request_is_aborted_while_forwarding_data.patch')
-rw-r--r--debian/patches/fix_crash_when_a_network_request_is_aborted_while_forwarding_data.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/debian/patches/fix_crash_when_a_network_request_is_aborted_while_forwarding_data.patch b/debian/patches/fix_crash_when_a_network_request_is_aborted_while_forwarding_data.patch
new file mode 100644
index 0000000..19ac009
--- /dev/null
+++ b/debian/patches/fix_crash_when_a_network_request_is_aborted_while_forwarding_data.patch
@@ -0,0 +1,38 @@
+From 13ebee35e169a8b1210851ec494951815c70620c Mon Sep 17 00:00:00 2001
+From: Allan Sandfeld Jensen <allan.jensen@digia.com>
+Date: Mon, 13 Oct 2014 15:32:14 +0200
+Subject: [PATCH] Fix crash when a network-request is aborted while forwarding
+ data
+
+Since we forward data block-wise a network request may be aborted while
+we are still forwarding received data. In that case we should stop the
+forwarding.
+
+Task-number: QTBUG-41877
+Change-Id: Ia34bbdcacdc4eb70a2e814d3b4bada9844abbb83
+Reviewed-by: Michael Bruning <michael.bruning@digia.com>
+---
+ Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp b/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
+index 5990a40..fc69546 100644
+--- a/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
++++ b/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
+@@ -687,9 +687,12 @@ void QNetworkReplyHandler::forwardData()
+ // -1 means we do not provide any data about transfer size to inspector so it would use
+ // Content-Length headers or content size to show transfer size.
+ client->didReceiveData(m_resourceHandle, buffer, readSize, -1);
++ // Check if the request has been aborted or this reply-handler was otherwise released.
++ if (wasAborted() || !m_replyWrapper)
++ break;
+ }
+ delete[] buffer;
+- if (bytesAvailable > 0)
++ if (bytesAvailable > 0 && m_replyWrapper)
+ m_queue.requeue(&QNetworkReplyHandler::forwardData);
+ }
+
+--
+2.1.1
+