diff options
| author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2014-05-28 11:49:30 +0100 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-06-03 16:49:19 +0100 |
| commit | 1380d516592d5a553c6ea521c0aad2f7ffc997e5 (patch) | |
| tree | cd149dee1f659415e8339a7c6a6a34d864e6d9d7 | |
| parent | 5bd29501adc6154813133418954833929000c788 (diff) | |
| download | poky-1380d516592d5a553c6ea521c0aad2f7ffc997e5.tar.gz | |
qt4: add patch for GIF denial-of-service vulnerability
For further details, see:
https://bugreports.qt-project.org/browse/QTBUG-38367
(From OE-Core rev: c322f67808bb36c5fea3fbabd30aa242e408fc50)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.6.inc | 1 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.6/0028-Don-t-crash-on-broken-GIF-images.patch | 47 |
2 files changed, 48 insertions, 0 deletions
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6.inc b/meta/recipes-qt/qt4/qt4-4.8.6.inc index c4dd36f67c..ae6692b50a 100644 --- a/meta/recipes-qt/qt4/qt4-4.8.6.inc +++ b/meta/recipes-qt/qt4/qt4-4.8.6.inc | |||
| @@ -21,6 +21,7 @@ SRC_URI = "http://download.qt-project.org/official_releases/qt/4.8/${PV}/qt-ever | |||
| 21 | file://0018-configure-make-pulseaudio-a-configurable-option.patch \ | 21 | file://0018-configure-make-pulseaudio-a-configurable-option.patch \ |
| 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://0027-tools.pro-disable-qmeegographicssystemhelper.patch \ | 23 | file://0027-tools.pro-disable-qmeegographicssystemhelper.patch \ |
| 24 | file://0028-Don-t-crash-on-broken-GIF-images.patch \ | ||
| 24 | file://g++.conf \ | 25 | file://g++.conf \ |
| 25 | file://linux.conf \ | 26 | file://linux.conf \ |
| 26 | " | 27 | " |
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0028-Don-t-crash-on-broken-GIF-images.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0028-Don-t-crash-on-broken-GIF-images.patch new file mode 100644 index 0000000000..906e2fdfc8 --- /dev/null +++ b/meta/recipes-qt/qt4/qt4-4.8.6/0028-Don-t-crash-on-broken-GIF-images.patch | |||
| @@ -0,0 +1,47 @@ | |||
| 1 | From f1b76c126c476c155af8c404b97c42cd1a709333 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Lars Knoll <lars.knoll@digia.com> | ||
| 3 | Date: Thu, 24 Apr 2014 15:33:27 +0200 | ||
| 4 | Subject: [PATCH] Don't crash on broken GIF images | ||
| 5 | |||
| 6 | Broken GIF images could set invalid width and height | ||
| 7 | values inside the image, leading to Qt creating a null | ||
| 8 | QImage for it. In that case we need to abort decoding | ||
| 9 | the image and return an error. | ||
| 10 | |||
| 11 | Initial patch by Rich Moore. | ||
| 12 | |||
| 13 | Backport of Id82a4036f478bd6e49c402d6598f57e7e5bb5e1e from Qt 5 | ||
| 14 | |||
| 15 | Task-number: QTBUG-38367 | ||
| 16 | Change-Id: I0680740018aaa8356d267b7af3f01fac3697312a | ||
| 17 | Security-advisory: CVE-2014-0190 | ||
| 18 | Reviewed-by: Richard J. Moore <rich@kde.org> | ||
| 19 | |||
| 20 | Upstream-Status: Backport | ||
| 21 | Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> | ||
| 22 | |||
| 23 | --- | ||
| 24 | src/gui/image/qgifhandler.cpp | 7 +++++++ | ||
| 25 | 1 file changed, 7 insertions(+) | ||
| 26 | |||
| 27 | diff --git a/src/gui/image/qgifhandler.cpp b/src/gui/image/qgifhandler.cpp | ||
| 28 | index 3324f04..5199dd3 100644 | ||
| 29 | --- a/src/gui/image/qgifhandler.cpp | ||
| 30 | +++ b/src/gui/image/qgifhandler.cpp | ||
| 31 | @@ -359,6 +359,13 @@ int QGIFFormat::decode(QImage *image, const uchar *buffer, int length, | ||
| 32 | memset(bits, 0, image->byteCount()); | ||
| 33 | } | ||
| 34 | |||
| 35 | + // Check if the previous attempt to create the image failed. If it | ||
| 36 | + // did then the image is broken and we should give up. | ||
| 37 | + if (image->isNull()) { | ||
| 38 | + state = Error; | ||
| 39 | + return -1; | ||
| 40 | + } | ||
| 41 | + | ||
| 42 | disposePrevious(image); | ||
| 43 | disposed = false; | ||
| 44 | |||
| 45 | -- | ||
| 46 | 1.9.3 | ||
| 47 | |||
