From 5aa0de5be8e5e9dc47af361af20a649ed76fc575 Mon Sep 17 00:00:00 2001 From: Than Ngo Date: Mar 30 2012 20:25:44 +0000 Subject: Merge branch 'master' into f17 --- diff --git a/qt-everywhere-opensource-src-4.8.1-qtgahandle.patch b/qt-everywhere-opensource-src-4.8.1-qtgahandle.patch new file mode 100644 index 0000000..64ffef3 --- /dev/null +++ b/qt-everywhere-opensource-src-4.8.1-qtgahandle.patch @@ -0,0 +1,53 @@ +diff -up qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.cpp.me qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.cpp +--- qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.cpp.me 2012-03-30 21:54:59.921331145 +0200 ++++ qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.cpp 2012-03-30 21:58:14.516042067 +0200 +@@ -41,6 +41,7 @@ + + #include "qtgafile.h" + ++#include + #include + #include + #include +@@ -264,3 +265,16 @@ QImage QTgaFile::readImage() + // TODO: add processing of TGA extension information - ie TGA 2.0 files + return im; + } ++/** ++ * Checks if device contains a valid tga image, *without* changing device ++ * position. ++ */ ++bool QTgaFile::canRead(QIODevice *device) ++{ ++ QByteArray header = device->peek(HeaderSize); ++ if (header.size() < HeaderSize) ++ return false; ++ QBuffer buffer(&header); ++ QTgaFile tga(&buffer); ++ return tga.isValid(); ++} +diff -up qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.h.me qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.h +--- qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.h.me 2012-03-30 21:58:39.670023189 +0200 ++++ qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.h 2012-03-30 21:59:06.202317384 +0200 +@@ -93,6 +93,8 @@ public: + inline QSize size() const; + inline Compression compression() const; + ++ static bool canRead(QIODevice *device); ++ + private: + static inline quint16 littleEndianInt(const unsigned char *d); + +diff -up qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgahandler.cpp.me qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgahandler.cpp +--- qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgahandler.cpp.me 2012-03-30 21:59:17.373303356 +0200 ++++ qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgahandler.cpp 2012-03-30 22:00:13.817226439 +0200 +@@ -77,8 +77,7 @@ bool QTgaHandler::canRead(QIODevice *dev + qWarning("QTgaHandler::canRead() called with no device"); + return false; + } +- QTgaFile tga(device); +- return tga.isValid(); ++ return QTgaFile::canRead(device); + } + + bool QTgaHandler::read(QImage *image) diff --git a/qt.spec b/qt.spec index 716bfde..d5b7950 100644 --- a/qt.spec +++ b/qt.spec @@ -11,7 +11,7 @@ Summary: Qt toolkit Name: qt Epoch: 1 Version: 4.8.1 -Release: 3%{?dist} +Release: 4%{?dist} # See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details License: (LGPLv2 with exceptions or GPLv3 with exceptions) and ASL 2.0 and BSD and FTL and MIT @@ -106,6 +106,8 @@ Patch80: qt-everywhere-opensource-src-4.8.0-ld-gold.patch Patch81: qt-everywhere-opensource-src-4.8.0-gcc-4.7.patch # upstream patches +# http://codereview.qt-project.org/#change,22006 +Patch100: qt-everywhere-opensource-src-4.8.1-qtgahandle.patch # security patches # CVE-2011-3922 qt: Stack-based buffer overflow in embedded harfbuzz code @@ -436,6 +438,7 @@ rm -fv mkspecs/linux-g++*/qmake.conf.multilib-optflags %patch81 -p1 -b .gcc-4.7 # upstream patches +%patch100 -p1 -b .QTgaHandler # security fixes %patch200 -p1 -b .CVE-2011-3922 @@ -1060,6 +1063,9 @@ fi %changelog +* Fri Mar 30 2012 Than Ngo - 4.8.1-4 +- Fix QTgaHandler::canRead() not obeying image plugin specs + * Thu Mar 29 2012 Rex Dieter 4.8.1-3 - Header file name mismatch in qt-devel i686 (#808087)