summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorJonathan Liu <net147@gmail.com>2013-08-03 17:56:43 +1000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-08-06 12:39:58 +0100
commit10197429ebe131c811a312a33398bbb13999fd5f (patch)
tree137486e8dd8f3bf4067560d084b78d2be3e5a24c /meta
parent6810129b5a13785fd1d2e9f9a2d00322e8372992 (diff)
downloadpoky-10197429ebe131c811a312a33398bbb13999fd5f.tar.gz
qt4: add upstream QTBUG-32534 patch for QHttpMultiPart upload corruption
(From OE-Core rev: 59c02272fe77589e265da6fc3fa3db0c76bcdf52) Signed-off-by: Jonathan Liu <net147@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.5.inc1
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.5/0023-QHttpMultiPart-fix-data-corruption-in-readData-metho.patch43
2 files changed, 44 insertions, 0 deletions
diff --git a/meta/recipes-qt/qt4/qt4-4.8.5.inc b/meta/recipes-qt/qt4/qt4-4.8.5.inc
index d05b17464e..95a14f3ddd 100644
--- a/meta/recipes-qt/qt4/qt4-4.8.5.inc
+++ b/meta/recipes-qt/qt4/qt4-4.8.5.inc
@@ -22,6 +22,7 @@ SRC_URI = "http://download.qt-project.org/official_releases/qt/4.8/${PV}/qt-ever
22 file://0019-Fixes-for-gcc-4.7.0-particularly-on-qemux86.patch \ 22 file://0019-Fixes-for-gcc-4.7.0-particularly-on-qemux86.patch \
23 file://0020-webkit-disable-the-fuse-ld-gold-flag.patch \ 23 file://0020-webkit-disable-the-fuse-ld-gold-flag.patch \
24 file://0022-Fix-drawing-of-0-width-polylines-from-outside-the-de.patch \ 24 file://0022-Fix-drawing-of-0-width-polylines-from-outside-the-de.patch \
25 file://0023-QHttpMultiPart-fix-data-corruption-in-readData-metho.patch \
25 file://0027-tools.pro-disable-qmeegographicssystemhelper.patch \ 26 file://0027-tools.pro-disable-qmeegographicssystemhelper.patch \
26 file://g++.conf \ 27 file://g++.conf \
27 file://linux.conf \ 28 file://linux.conf \
diff --git a/meta/recipes-qt/qt4/qt4-4.8.5/0023-QHttpMultiPart-fix-data-corruption-in-readData-metho.patch b/meta/recipes-qt/qt4/qt4-4.8.5/0023-QHttpMultiPart-fix-data-corruption-in-readData-metho.patch
new file mode 100644
index 0000000000..c3c002e8a1
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.5/0023-QHttpMultiPart-fix-data-corruption-in-readData-metho.patch
@@ -0,0 +1,43 @@
1From 1f40ed553e618c3b0511c7db4b4fd26c2d2b65bf Mon Sep 17 00:00:00 2001
2From: Peter Hartmann <phartmann@blackberry.com>
3Date: Thu, 25 Jul 2013 12:05:29 -0400
4Subject: [PATCH] QHttpMultiPart: fix data corruption in readData method
5
6When readData() is called repeatedly, we need to keep track which
7part of the multipart message we are currently reading from.
8Hereby we also need to take the boundary size into account, and not
9only the size of the multipart; otherwise we would skip a not
10completely read part. This would then later lead to advancing the
11read pointer by negative indexes and data loss.
12
13Upstream-Status: Accepted [https://codereview.qt-project.org/#change,61861]
14Signed-off-by: Jonathan Liu <net147@gmail.com>
15
16Task-number: QTBUG-32534
17Change-Id: Ibb6dff16adaf4ea67181d23d1d0c8459e33a0ed0
18Reviewed-by: Jonathan Liu <net147@gmail.com>
19Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
20(cherry picked from qtbase/af96c6fed931564c95037539f07e9c8e33c69529)
21Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
22---
23 src/network/access/qhttpmultipart.cpp | 3 +-
24 tests/auto/qnetworkreply/tst_qnetworkreply.cpp | 44 ++++++++++++++++++++++++++
25 2 files changed, 46 insertions(+), 1 deletion(-)
26
27diff --git a/src/network/access/qhttpmultipart.cpp b/src/network/access/qhttpmultipart.cpp
28index 635129a..b25e917 100644
29--- a/src/network/access/qhttpmultipart.cpp
30+++ b/src/network/access/qhttpmultipart.cpp
31@@ -488,7 +488,8 @@ qint64 QHttpMultiPartIODevice::readData(char *data, qint64 maxSize)
32
33 // skip the parts we have already read
34 while (index < multiPart->parts.count() &&
35- readPointer >= partOffsets.at(index) + multiPart->parts.at(index).d->size())
36+ readPointer >= partOffsets.at(index) + multiPart->parts.at(index).d->size()
37+ + multiPart->boundary.count() + 6) // 6 == 2 boundary dashes, \r\n after boundary, \r\n after multipart
38 index++;
39
40 // read the data
41--
421.8.3.4
43