[OE-core] [PATCH] qt4: add upstream QTBUG-32534 patch for QHttpMultiPart upload corruption

Laszlo Papp lpapp at kde.org
Sat Aug 3 09:11:09 UTC 2013


You need this fix right in your third-party project that it cannot wait
until the next upstream bugfix release, or if not you, someone else
requested it on the Yocto bugtracker?


On Sat, Aug 3, 2013 at 8:56 AM, Jonathan Liu <net147 at gmail.com> wrote:

> Signed-off-by: Jonathan Liu <net147 at gmail.com>
> ---
>  meta/recipes-qt/qt4/qt4-4.8.5.inc                  |  1 +
>  ...art-fix-data-corruption-in-readData-metho.patch | 43
> ++++++++++++++++++++++
>  2 files changed, 44 insertions(+)
>  create mode 100644
> meta/recipes-qt/qt4/qt4-4.8.5/0023-QHttpMultiPart-fix-data-corruption-in-readData-metho.patch
>
> diff --git a/meta/recipes-qt/qt4/qt4-4.8.5.inc
> b/meta/recipes-qt/qt4/qt4-4.8.5.inc
> index d05b174..95a14f3 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
>             file://0019-Fixes-for-gcc-4.7.0-particularly-on-qemux86.patch \
>             file://0020-webkit-disable-the-fuse-ld-gold-flag.patch \
>
> file://0022-Fix-drawing-of-0-width-polylines-from-outside-the-de.patch \
> +
> file://0023-QHttpMultiPart-fix-data-corruption-in-readData-metho.patch \
>             file://0027-tools.pro-disable-qmeegographicssystemhelper.patch
> \
>             file://g++.conf \
>             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 0000000..c3c002e
> --- /dev/null
> +++
> b/meta/recipes-qt/qt4/qt4-4.8.5/0023-QHttpMultiPart-fix-data-corruption-in-readData-metho.patch
> @@ -0,0 +1,43 @@
> +From 1f40ed553e618c3b0511c7db4b4fd26c2d2b65bf Mon Sep 17 00:00:00 2001
> +From: Peter Hartmann <phartmann at 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,61861]
> +Signed-off-by: Jonathan Liu <net147 at gmail.com>
> +
> +Task-number: QTBUG-32534
> +Change-Id: Ibb6dff16adaf4ea67181d23d1d0c8459e33a0ed0
> +Reviewed-by: Jonathan Liu <net147 at gmail.com>
> +Reviewed-by: Shane Kearns <shane.kearns at accenture.com>
> +(cherry picked from qtbase/af96c6fed931564c95037539f07e9c8e33c69529)
> +Reviewed-by: Thiago Macieira <thiago.macieira at intel.com>
> +---
> + src/network/access/qhttpmultipart.cpp          |  3 +-
> + tests/auto/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 635129a..b25e917 100644
> +--- a/src/network/access/qhttpmultipart.cpp
> ++++ b/src/network/access/qhttpmultipart.cpp
> +@@ -488,7 +488,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
> +
> --
> 1.8.3.4
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20130803/77bc0bf4/attachment-0002.html>


More information about the Openembedded-core mailing list