From: Jonathan Liu <net147@gmail.com>
To: openembedded-devel@lists.openembedded.org
Subject: [meta-qt5][PATCH] qtbase: add upstream QTBUG-32534 patch for QHttpMultiPart corruption
Date: Sat, 3 Aug 2013 18:46:10 +1000 [thread overview]
Message-ID: <1375519570-11528-1-git-send-email-net147@gmail.com> (raw)
Signed-off-by: Jonathan Liu <net147@gmail.com>
---
...art-fix-data-corruption-in-readData-metho.patch | 41 ++++++++++++++++++++++
...art-fix-data-corruption-in-readData-metho.patch | 41 ++++++++++++++++++++++
...art-fix-data-corruption-in-readData-metho.patch | 41 ++++++++++++++++++++++
recipes-qt/qt5/qtbase.inc | 1 +
4 files changed, 124 insertions(+)
create mode 100644 recipes-qt/qt5/qtbase-5.0.2/0025-QHttpMultiPart-fix-data-corruption-in-readData-metho.patch
create mode 100644 recipes-qt/qt5/qtbase-5.1.0/0025-QHttpMultiPart-fix-data-corruption-in-readData-metho.patch
create mode 100644 recipes-qt/qt5/qtbase-git/0025-QHttpMultiPart-fix-data-corruption-in-readData-metho.patch
diff --git a/recipes-qt/qt5/qtbase-5.0.2/0025-QHttpMultiPart-fix-data-corruption-in-readData-metho.patch b/recipes-qt/qt5/qtbase-5.0.2/0025-QHttpMultiPart-fix-data-corruption-in-readData-metho.patch
new file mode 100644
index 0000000..33e77ea
--- /dev/null
+++ b/recipes-qt/qt5/qtbase-5.0.2/0025-QHttpMultiPart-fix-data-corruption-in-readData-metho.patch
@@ -0,0 +1,41 @@
+From af96c6fed931564c95037539f07e9c8e33c69529 Mon Sep 17 00:00:00 2001
+From: Peter Hartmann <phartmann@blackberry.com>
+Date: Thu, 25 Jul 2013 12:05:29 -0400
+Subject: [PATCH] QHttpMultiPart: fix data corruption in readData method
+
+When readData() is called repeatedly, we need to keep track which
+part of the multipart message we are currently reading from.
+Hereby we also need to take the boundary size into account, and not
+only the size of the multipart; otherwise we would skip a not
+completely read part. This would then later lead to advancing the
+read pointer by negative indexes and data loss.
+
+Upstream-Status: Backport [https://codereview.qt-project.org/#change,61698]
+Signed-off-by: Jonathan Liu <net147@gmail.com>
+
+Task-number: QTBUG-32534
+Change-Id: Ibb6dff16adaf4ea67181d23d1d0c8459e33a0ed0
+Reviewed-by: Jonathan Liu <net147@gmail.com>
+Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
+---
+ src/network/access/qhttpmultipart.cpp | 3 +-
+ .../access/qnetworkreply/tst_qnetworkreply.cpp | 44 ++++++++++++++++++++++
+ 2 files changed, 46 insertions(+), 1 deletion(-)
+
+diff --git a/src/network/access/qhttpmultipart.cpp b/src/network/access/qhttpmultipart.cpp
+index 4397ef8..5985ed9 100644
+--- a/src/network/access/qhttpmultipart.cpp
++++ b/src/network/access/qhttpmultipart.cpp
+@@ -497,7 +497,8 @@ qint64 QHttpMultiPartIODevice::readData(char *data, qint64 maxSize)
+
+ // skip the parts we have already read
+ while (index < multiPart->parts.count() &&
+- readPointer >= partOffsets.at(index) + multiPart->parts.at(index).d->size())
++ readPointer >= partOffsets.at(index) + multiPart->parts.at(index).d->size()
++ + multiPart->boundary.count() + 6) // 6 == 2 boundary dashes, \r\n after boundary, \r\n after multipart
+ index++;
+
+ // read the data
+--
+1.8.3.4
+
diff --git a/recipes-qt/qt5/qtbase-5.1.0/0025-QHttpMultiPart-fix-data-corruption-in-readData-metho.patch b/recipes-qt/qt5/qtbase-5.1.0/0025-QHttpMultiPart-fix-data-corruption-in-readData-metho.patch
new file mode 100644
index 0000000..6858cea
--- /dev/null
+++ b/recipes-qt/qt5/qtbase-5.1.0/0025-QHttpMultiPart-fix-data-corruption-in-readData-metho.patch
@@ -0,0 +1,41 @@
+From af96c6fed931564c95037539f07e9c8e33c69529 Mon Sep 17 00:00:00 2001
+From: Peter Hartmann <phartmann@blackberry.com>
+Date: Thu, 25 Jul 2013 12:05:29 -0400
+Subject: [PATCH] QHttpMultiPart: fix data corruption in readData method
+
+When readData() is called repeatedly, we need to keep track which
+part of the multipart message we are currently reading from.
+Hereby we also need to take the boundary size into account, and not
+only the size of the multipart; otherwise we would skip a not
+completely read part. This would then later lead to advancing the
+read pointer by negative indexes and data loss.
+
+Upstream-Status: Accepted [https://codereview.qt-project.org/#change,61698]
+Signed-off-by: Jonathan Liu <net147@gmail.com>
+
+Task-number: QTBUG-32534
+Change-Id: Ibb6dff16adaf4ea67181d23d1d0c8459e33a0ed0
+Reviewed-by: Jonathan Liu <net147@gmail.com>
+Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
+---
+ src/network/access/qhttpmultipart.cpp | 3 +-
+ .../access/qnetworkreply/tst_qnetworkreply.cpp | 44 ++++++++++++++++++++++
+ 2 files changed, 46 insertions(+), 1 deletion(-)
+
+diff --git a/src/network/access/qhttpmultipart.cpp b/src/network/access/qhttpmultipart.cpp
+index 4397ef8..5985ed9 100644
+--- a/src/network/access/qhttpmultipart.cpp
++++ b/src/network/access/qhttpmultipart.cpp
+@@ -497,7 +497,8 @@ qint64 QHttpMultiPartIODevice::readData(char *data, qint64 maxSize)
+
+ // skip the parts we have already read
+ while (index < multiPart->parts.count() &&
+- readPointer >= partOffsets.at(index) + multiPart->parts.at(index).d->size())
++ readPointer >= partOffsets.at(index) + multiPart->parts.at(index).d->size()
++ + multiPart->boundary.count() + 6) // 6 == 2 boundary dashes, \r\n after boundary, \r\n after multipart
+ index++;
+
+ // read the data
+--
+1.8.3.4
+
diff --git a/recipes-qt/qt5/qtbase-git/0025-QHttpMultiPart-fix-data-corruption-in-readData-metho.patch b/recipes-qt/qt5/qtbase-git/0025-QHttpMultiPart-fix-data-corruption-in-readData-metho.patch
new file mode 100644
index 0000000..6858cea
--- /dev/null
+++ b/recipes-qt/qt5/qtbase-git/0025-QHttpMultiPart-fix-data-corruption-in-readData-metho.patch
@@ -0,0 +1,41 @@
+From af96c6fed931564c95037539f07e9c8e33c69529 Mon Sep 17 00:00:00 2001
+From: Peter Hartmann <phartmann@blackberry.com>
+Date: Thu, 25 Jul 2013 12:05:29 -0400
+Subject: [PATCH] QHttpMultiPart: fix data corruption in readData method
+
+When readData() is called repeatedly, we need to keep track which
+part of the multipart message we are currently reading from.
+Hereby we also need to take the boundary size into account, and not
+only the size of the multipart; otherwise we would skip a not
+completely read part. This would then later lead to advancing the
+read pointer by negative indexes and data loss.
+
+Upstream-Status: Accepted [https://codereview.qt-project.org/#change,61698]
+Signed-off-by: Jonathan Liu <net147@gmail.com>
+
+Task-number: QTBUG-32534
+Change-Id: Ibb6dff16adaf4ea67181d23d1d0c8459e33a0ed0
+Reviewed-by: Jonathan Liu <net147@gmail.com>
+Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
+---
+ src/network/access/qhttpmultipart.cpp | 3 +-
+ .../access/qnetworkreply/tst_qnetworkreply.cpp | 44 ++++++++++++++++++++++
+ 2 files changed, 46 insertions(+), 1 deletion(-)
+
+diff --git a/src/network/access/qhttpmultipart.cpp b/src/network/access/qhttpmultipart.cpp
+index 4397ef8..5985ed9 100644
+--- a/src/network/access/qhttpmultipart.cpp
++++ b/src/network/access/qhttpmultipart.cpp
+@@ -497,7 +497,8 @@ qint64 QHttpMultiPartIODevice::readData(char *data, qint64 maxSize)
+
+ // skip the parts we have already read
+ while (index < multiPart->parts.count() &&
+- readPointer >= partOffsets.at(index) + multiPart->parts.at(index).d->size())
++ readPointer >= partOffsets.at(index) + multiPart->parts.at(index).d->size()
++ + multiPart->boundary.count() + 6) // 6 == 2 boundary dashes, \r\n after boundary, \r\n after multipart
+ index++;
+
+ // read the data
+--
+1.8.3.4
+
diff --git a/recipes-qt/qt5/qtbase.inc b/recipes-qt/qt5/qtbase.inc
index 21386dc..47038d0 100644
--- a/recipes-qt/qt5/qtbase.inc
+++ b/recipes-qt/qt5/qtbase.inc
@@ -22,6 +22,7 @@ SRC_URI += " \
file://0022-configure-make-alsa-a-configurable-option.patch \
file://0023-configure-make-freetype-a-configurable-option.patch \
file://0024-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-determine-pa.patch \
+ file://0025-QHttpMultiPart-fix-data-corruption-in-readData-metho.patch \
"
DEPENDS += "qtbase-native"
--
1.8.3.4
next reply other threads:[~2013-08-03 8:51 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-03 8:46 Jonathan Liu [this message]
2013-08-03 9:01 ` [meta-qt5][PATCH] qtbase: add upstream QTBUG-32534 patch for QHttpMultiPart corruption Martin Jansa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1375519570-11528-1-git-send-email-net147@gmail.com \
--to=net147@gmail.com \
--cc=openembedded-devel@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.