From: Lars Knoll Date: Thu, 24 Apr 2014 13:33:27 +0000 (+0200) Subject: Don't crash on broken GIF images X-Git-Tag: archive/raspbian/4%4.8.7+dfsg-18+rpi1^2~61 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=02d93cb4b35426845eeeb479980aa1a4e51e438c;p=qt4-x11.git Don't crash on broken GIF images Broken GIF images could set invalid width and height values inside the image, leading to Qt creating a null QImage for it. In that case we need to abort decoding the image and return an error. Initial patch by Rich Moore. Backport of Id82a4036f478bd6e49c402d6598f57e7e5bb5e1e from Qt 5 Task-number: QTBUG-38367 Change-Id: I0680740018aaa8356d267b7af3f01fac3697312a Security-advisory: CVE-2014-0190 Gbp-Pq: Name dont_crash_on_broken_gif_images.patch --- diff --git a/src/gui/image/qgifhandler.cpp b/src/gui/image/qgifhandler.cpp index 2a9217a2d..5ef1a4ac3 100644 --- a/src/gui/image/qgifhandler.cpp +++ b/src/gui/image/qgifhandler.cpp @@ -366,6 +366,13 @@ int QGIFFormat::decode(QImage *image, const uchar *buffer, int length, return -1; } + // Check if the previous attempt to create the image failed. If it + // did then the image is broken and we should give up. + if (image->isNull()) { + state = Error; + return -1; + } + disposePrevious(image); disposed = false;