Hello community, here is the log from the commit of package libqt5-qtsvg for openSUSE:Factory checked in at 2020-11-25 19:29:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libqt5-qtsvg (Old) and /work/SRC/openSUSE:Factory/.libqt5-qtsvg.new.5913 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libqt5-qtsvg" Wed Nov 25 19:29:12 2020 rev:45 rq:850035 version:5.15.2 Changes: -------- --- /work/SRC/openSUSE:Factory/libqt5-qtsvg/libqt5-qtsvg.changes 2020-09-14 12:10:23.752061061 +0200 +++ /work/SRC/openSUSE:Factory/.libqt5-qtsvg.new.5913/libqt5-qtsvg.changes 2020-11-25 19:29:38.982512795 +0100 @@ -1,0 +2,8 @@ +Fri Nov 20 12:09:39 UTC 2020 - Fabian Vogt <fab...@ritter-vogt.de> + +- Update to 5.15.2: + * New bugfix release + * For more details please see: + http://code.qt.io/cgit/qt/qtsvg.git/plain/dist/changes-5.15.2/?h=5.15.2 + +------------------------------------------------------------------- Old: ---- qtsvg-everywhere-src-5.15.1.tar.xz New: ---- qtsvg-everywhere-src-5.15.2.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libqt5-qtsvg.spec ++++++ --- /var/tmp/diff_new_pack.TEBl09/_old 2020-11-25 19:29:41.094515456 +0100 +++ /var/tmp/diff_new_pack.TEBl09/_new 2020-11-25 19:29:41.098515460 +0100 @@ -19,11 +19,11 @@ %define qt5_snapshot 0 %define libname libQt5Svg5 %define base_name libqt5 -%define real_version 5.15.1 -%define so_version 5.15.1 -%define tar_version qtsvg-everywhere-src-5.15.1 +%define real_version 5.15.2 +%define so_version 5.15.2 +%define tar_version qtsvg-everywhere-src-5.15.2 Name: libqt5-qtsvg -Version: 5.15.1 +Version: 5.15.2 Release: 0 Summary: Qt 5 SVG Library License: LGPL-3.0-only OR (GPL-2.0-only OR GPL-3.0-or-later) ++++++ qtsvg-everywhere-src-5.15.1.tar.xz -> qtsvg-everywhere-src-5.15.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/.qmake.conf new/qtsvg-everywhere-src-5.15.2/.qmake.conf --- old/qtsvg-everywhere-src-5.15.1/.qmake.conf 2020-08-24 11:20:54.000000000 +0200 +++ new/qtsvg-everywhere-src-5.15.2/.qmake.conf 2020-10-27 09:02:11.000000000 +0100 @@ -3,4 +3,4 @@ CONFIG += warning_clean DEFINES += QT_NO_FOREACH -MODULE_VERSION = 5.15.1 +MODULE_VERSION = 5.15.2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/.tag new/qtsvg-everywhere-src-5.15.2/.tag --- old/qtsvg-everywhere-src-5.15.1/.tag 2020-08-24 11:20:54.000000000 +0200 +++ new/qtsvg-everywhere-src-5.15.2/.tag 2020-10-27 09:02:11.000000000 +0100 @@ -1 +1 @@ -6b444e832d31ce9a9497ca8e6aff0520f1d888ea +52d3788c7b0116ea3db232dccca5f1e3f1e229ac diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/dist/changes-5.15.2 new/qtsvg-everywhere-src-5.15.2/dist/changes-5.15.2 --- old/qtsvg-everywhere-src-5.15.1/dist/changes-5.15.2 1970-01-01 01:00:00.000000000 +0100 +++ new/qtsvg-everywhere-src-5.15.2/dist/changes-5.15.2 2020-10-27 09:02:11.000000000 +0100 @@ -0,0 +1,42 @@ +Qt 5.15.2 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.15.1. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + + https://doc.qt.io/qt-5.15/index.html + +The Qt version 5.15 series is binary compatible with the 5.14.x series. +Applications compiled for 5.14 will continue to run with 5.15. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + + https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Important Behavior Changes * +**************************************************************************** + +**************************************************************************** +* Library * +**************************************************************************** + + - [QTBUG-87583] Allowed loading SVG files with a doctype declaration + - [oss-fuzz-24611] Implemented a basic format check for compressed svgs so + it will fail early if the file does not start with a svg or xml tag after + decompressing + - [oss-fuzz-24611] Avoids recursion when inflating compressed svgs and no + longer returns a partially extracted QByteArray + - [oss-fuzz-24347] Reduced memory consumption significantly for huge files. + - [oss-fuzz-24735] Reject corrupt svgs with invalid size + +Third-Party Code +---------------- + + - XSVG license was re-classified to HPND-sell-variant, "Historical Permission + Notice and Disclaimer - sell variant" + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/examples/svg/svggenerator/doc/src/svggenerator.qdoc new/qtsvg-everywhere-src-5.15.2/examples/svg/svggenerator/doc/src/svggenerator.qdoc --- old/qtsvg-everywhere-src-5.15.1/examples/svg/svggenerator/doc/src/svggenerator.qdoc 2020-08-24 11:20:54.000000000 +0200 +++ new/qtsvg-everywhere-src-5.15.2/examples/svg/svggenerator/doc/src/svggenerator.qdoc 2020-10-27 09:02:11.000000000 +0100 @@ -42,7 +42,7 @@ The \c Window class contains the application logic and constructs the user interface from a Qt Designer UI file as described in the - \l{Using a Designer UI File in Your Application#The Multiple Inheritance Approach}{Qt Designer manual}. + \l{Using a Designer UI File in Your C++ Application#The Multiple Inheritance Approach}{Qt Designer manual}. It also contains the code to write an SVG file. The \c DisplayWidget class performs all the work of painting a picture on diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.1/QtSvg/private/qsvgfont_p.h new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.1/QtSvg/private/qsvgfont_p.h --- old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.1/QtSvg/private/qsvgfont_p.h 2020-08-24 11:20:54.000000000 +0200 +++ new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.1/QtSvg/private/qsvgfont_p.h 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -#include "../../../../../src/svg/qsvgfont_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.1/QtSvg/private/qsvggraphics_p.h new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.1/QtSvg/private/qsvggraphics_p.h --- old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.1/QtSvg/private/qsvggraphics_p.h 2020-08-24 11:20:54.000000000 +0200 +++ new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.1/QtSvg/private/qsvggraphics_p.h 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -#include "../../../../../src/svg/qsvggraphics_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.1/QtSvg/private/qsvghandler_p.h new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.1/QtSvg/private/qsvghandler_p.h --- old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.1/QtSvg/private/qsvghandler_p.h 2020-08-24 11:20:54.000000000 +0200 +++ new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.1/QtSvg/private/qsvghandler_p.h 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -#include "../../../../../src/svg/qsvghandler_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.1/QtSvg/private/qsvgnode_p.h new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.1/QtSvg/private/qsvgnode_p.h --- old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.1/QtSvg/private/qsvgnode_p.h 2020-08-24 11:20:54.000000000 +0200 +++ new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.1/QtSvg/private/qsvgnode_p.h 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -#include "../../../../../src/svg/qsvgnode_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.1/QtSvg/private/qsvgstructure_p.h new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.1/QtSvg/private/qsvgstructure_p.h --- old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.1/QtSvg/private/qsvgstructure_p.h 2020-08-24 11:20:54.000000000 +0200 +++ new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.1/QtSvg/private/qsvgstructure_p.h 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -#include "../../../../../src/svg/qsvgstructure_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.1/QtSvg/private/qsvgstyle_p.h new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.1/QtSvg/private/qsvgstyle_p.h --- old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.1/QtSvg/private/qsvgstyle_p.h 2020-08-24 11:20:54.000000000 +0200 +++ new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.1/QtSvg/private/qsvgstyle_p.h 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -#include "../../../../../src/svg/qsvgstyle_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.1/QtSvg/private/qsvgtinydocument_p.h new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.1/QtSvg/private/qsvgtinydocument_p.h --- old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.1/QtSvg/private/qsvgtinydocument_p.h 2020-08-24 11:20:54.000000000 +0200 +++ new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.1/QtSvg/private/qsvgtinydocument_p.h 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -#include "../../../../../src/svg/qsvgtinydocument_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.1/QtSvg/private/qtsvgglobal_p.h new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.1/QtSvg/private/qtsvgglobal_p.h --- old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.1/QtSvg/private/qtsvgglobal_p.h 2020-08-24 11:20:54.000000000 +0200 +++ new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.1/QtSvg/private/qtsvgglobal_p.h 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -#include "../../../../../src/svg/qtsvgglobal_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.2/QtSvg/private/qsvgfont_p.h new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.2/QtSvg/private/qsvgfont_p.h --- old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.2/QtSvg/private/qsvgfont_p.h 1970-01-01 01:00:00.000000000 +0100 +++ new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.2/QtSvg/private/qsvgfont_p.h 2020-10-27 09:02:11.000000000 +0100 @@ -0,0 +1 @@ +#include "../../../../../src/svg/qsvgfont_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.2/QtSvg/private/qsvggraphics_p.h new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.2/QtSvg/private/qsvggraphics_p.h --- old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.2/QtSvg/private/qsvggraphics_p.h 1970-01-01 01:00:00.000000000 +0100 +++ new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.2/QtSvg/private/qsvggraphics_p.h 2020-10-27 09:02:11.000000000 +0100 @@ -0,0 +1 @@ +#include "../../../../../src/svg/qsvggraphics_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.2/QtSvg/private/qsvghandler_p.h new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.2/QtSvg/private/qsvghandler_p.h --- old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.2/QtSvg/private/qsvghandler_p.h 1970-01-01 01:00:00.000000000 +0100 +++ new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.2/QtSvg/private/qsvghandler_p.h 2020-10-27 09:02:11.000000000 +0100 @@ -0,0 +1 @@ +#include "../../../../../src/svg/qsvghandler_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.2/QtSvg/private/qsvgnode_p.h new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.2/QtSvg/private/qsvgnode_p.h --- old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.2/QtSvg/private/qsvgnode_p.h 1970-01-01 01:00:00.000000000 +0100 +++ new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.2/QtSvg/private/qsvgnode_p.h 2020-10-27 09:02:11.000000000 +0100 @@ -0,0 +1 @@ +#include "../../../../../src/svg/qsvgnode_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.2/QtSvg/private/qsvgstructure_p.h new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.2/QtSvg/private/qsvgstructure_p.h --- old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.2/QtSvg/private/qsvgstructure_p.h 1970-01-01 01:00:00.000000000 +0100 +++ new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.2/QtSvg/private/qsvgstructure_p.h 2020-10-27 09:02:11.000000000 +0100 @@ -0,0 +1 @@ +#include "../../../../../src/svg/qsvgstructure_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.2/QtSvg/private/qsvgstyle_p.h new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.2/QtSvg/private/qsvgstyle_p.h --- old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.2/QtSvg/private/qsvgstyle_p.h 1970-01-01 01:00:00.000000000 +0100 +++ new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.2/QtSvg/private/qsvgstyle_p.h 2020-10-27 09:02:11.000000000 +0100 @@ -0,0 +1 @@ +#include "../../../../../src/svg/qsvgstyle_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.2/QtSvg/private/qsvgtinydocument_p.h new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.2/QtSvg/private/qsvgtinydocument_p.h --- old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.2/QtSvg/private/qsvgtinydocument_p.h 1970-01-01 01:00:00.000000000 +0100 +++ new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.2/QtSvg/private/qsvgtinydocument_p.h 2020-10-27 09:02:11.000000000 +0100 @@ -0,0 +1 @@ +#include "../../../../../src/svg/qsvgtinydocument_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.2/QtSvg/private/qtsvgglobal_p.h new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.2/QtSvg/private/qtsvgglobal_p.h --- old/qtsvg-everywhere-src-5.15.1/include/QtSvg/5.15.2/QtSvg/private/qtsvgglobal_p.h 1970-01-01 01:00:00.000000000 +0100 +++ new/qtsvg-everywhere-src-5.15.2/include/QtSvg/5.15.2/QtSvg/private/qtsvgglobal_p.h 2020-10-27 09:02:11.000000000 +0100 @@ -0,0 +1 @@ +#include "../../../../../src/svg/qtsvgglobal_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/include/QtSvg/qtsvgversion.h new/qtsvg-everywhere-src-5.15.2/include/QtSvg/qtsvgversion.h --- old/qtsvg-everywhere-src-5.15.1/include/QtSvg/qtsvgversion.h 2020-09-04 05:31:41.000000000 +0200 +++ new/qtsvg-everywhere-src-5.15.2/include/QtSvg/qtsvgversion.h 2020-11-12 18:24:08.000000000 +0100 @@ -2,8 +2,8 @@ #ifndef QT_QTSVG_VERSION_H #define QT_QTSVG_VERSION_H -#define QTSVG_VERSION_STR "5.15.1" +#define QTSVG_VERSION_STR "5.15.2" -#define QTSVG_VERSION 0x050F01 +#define QTSVG_VERSION 0x050F02 #endif // QT_QTSVG_VERSION_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/src/plugins/imageformats/svg/qsvgiohandler.cpp new/qtsvg-everywhere-src-5.15.2/src/plugins/imageformats/svg/qsvgiohandler.cpp --- old/qtsvg-everywhere-src-5.15.1/src/plugins/imageformats/svg/qsvgiohandler.cpp 2020-08-24 11:20:54.000000000 +0200 +++ new/qtsvg-everywhere-src-5.15.2/src/plugins/imageformats/svg/qsvgiohandler.cpp 2020-10-27 09:02:11.000000000 +0100 @@ -126,14 +126,14 @@ if (d->loaded && !d->readDone) return true; // Will happen if we have been asked for the size - QByteArray buf = device()->peek(8); + QByteArray buf = device()->peek(16); #ifndef QT_NO_COMPRESS if (buf.startsWith("\x1f\x8b")) { setFormat("svgz"); return true; } else #endif - if (buf.contains("<?xml") || buf.contains("<svg") || buf.contains("<!--")) { + if (buf.contains("<?xml") || buf.contains("<svg") || buf.contains("<!--") || buf.contains("<!DOCTYPE svg")) { setFormat("svg"); return true; } @@ -260,12 +260,12 @@ bool QSvgIOHandler::canRead(QIODevice *device) { - QByteArray buf = device->peek(8); + QByteArray buf = device->peek(16); return #ifndef QT_NO_COMPRESS buf.startsWith("\x1f\x8b") || #endif - buf.contains("<?xml") || buf.contains("<svg") || buf.contains("<!--"); + buf.contains("<?xml") || buf.contains("<svg") || buf.contains("<!--") || buf.contains("<!DOCTYPE svg"); } QT_END_NAMESPACE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/src/svg/qsvgrenderer.cpp new/qtsvg-everywhere-src-5.15.2/src/svg/qsvgrenderer.cpp --- old/qtsvg-everywhere-src-5.15.1/src/svg/qsvgrenderer.cpp 2020-08-24 11:20:54.000000000 +0200 +++ new/qtsvg-everywhere-src-5.15.2/src/svg/qsvgrenderer.cpp 2020-10-27 09:02:11.000000000 +0100 @@ -350,6 +350,10 @@ { delete d->render; d->render = QSvgTinyDocument::load(in); + if (d->render && !d->render->size().isValid()) { + delete d->render; + d->render = nullptr; + } if (d->render && d->render->animated() && d->fps > 0) { if (!d->timer) d->timer = new QTimer(q); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/src/svg/qsvgtinydocument.cpp new/qtsvg-everywhere-src-5.15.2/src/svg/qsvgtinydocument.cpp --- old/qtsvg-everywhere-src-5.15.1/src/svg/qsvgtinydocument.cpp 2020-08-24 11:20:54.000000000 +0200 +++ new/qtsvg-everywhere-src-5.15.2/src/svg/qsvgtinydocument.cpp 2020-10-27 09:02:11.000000000 +0100 @@ -73,13 +73,15 @@ } #ifndef QT_NO_COMPRESS +static QByteArray qt_inflateSvgzDataFrom(QIODevice *device, bool doCheckContent = true); # ifdef QT_BUILD_INTERNAL -Q_AUTOTEST_EXPORT QByteArray qt_inflateGZipDataFrom(QIODevice *device); -# else -static QByteArray qt_inflateGZipDataFrom(QIODevice *device); +Q_AUTOTEST_EXPORT QByteArray qt_inflateGZipDataFrom(QIODevice *device) +{ + return qt_inflateSvgzDataFrom(device, false); // autotest wants unchecked result +} # endif -QByteArray qt_inflateGZipDataFrom(QIODevice *device) +static QByteArray qt_inflateSvgzDataFrom(QIODevice *device, bool doCheckContent) { if (!device) return QByteArray(); @@ -130,7 +132,7 @@ if (oldSize > INT_MAX - CHUNK_SIZE) { inflateEnd(&zlibStream); qCWarning(lcSvgHandler, "Error while inflating gzip file: integer size overflow"); - return destination; + return QByteArray(); } destination.resize(oldSize + CHUNK_SIZE); @@ -155,6 +157,17 @@ // it means we have to provide more data, so exit the loop here } while (!zlibStream.avail_out); + if (doCheckContent) { + // Quick format check, equivalent to QSvgIOHandler::canRead() + QByteArray buf = destination.left(16); + if (!buf.contains("<?xml") && !buf.contains("<svg") && !buf.contains("<!--") && !buf.contains("<!DOCTYPE svg")) { + inflateEnd(&zlibStream); + qCWarning(lcSvgHandler, "Error while inflating gzip file: SVG format check failed"); + return QByteArray(); + } + doCheckContent = false; // Run only once, on first chunk + } + if (zlibResult == Z_STREAM_END) { // Make sure there are no more members to process before exiting if (!(zlibStream.avail_in && inflateReset(&zlibStream) == Z_OK)) @@ -168,6 +181,11 @@ inflateEnd(&zlibStream); return destination; } +#else +static QByteArray qt_inflateSvgzDataFrom(QIODevice *) +{ + return QByteArray(); +} #endif QSvgTinyDocument * QSvgTinyDocument::load(const QString &fileName) @@ -179,12 +197,10 @@ return 0; } -#ifndef QT_NO_COMPRESS if (fileName.endsWith(QLatin1String(".svgz"), Qt::CaseInsensitive) || fileName.endsWith(QLatin1String(".svg.gz"), Qt::CaseInsensitive)) { - return load(qt_inflateGZipDataFrom(&file)); + return load(qt_inflateSvgzDataFrom(&file)); } -#endif QSvgTinyDocument *doc = 0; QSvgHandler handler(&file); @@ -201,18 +217,22 @@ QSvgTinyDocument * QSvgTinyDocument::load(const QByteArray &contents) { -#ifndef QT_NO_COMPRESS + QByteArray svg; // Check for gzip magic number and inflate if appropriate if (contents.startsWith("\x1f\x8b")) { - QBuffer buffer(const_cast<QByteArray *>(&contents)); - const QByteArray inflated = qt_inflateGZipDataFrom(&buffer); - if (inflated.isNull()) - return nullptr; - return load(inflated); + QBuffer buffer; + buffer.setData(contents); + svg = qt_inflateSvgzDataFrom(&buffer); + } else { + svg = contents; } -#endif + if (svg.isNull()) + return nullptr; - QSvgHandler handler(contents); + QBuffer buffer; + buffer.setData(svg); + buffer.open(QIODevice::ReadOnly); + QSvgHandler handler(&buffer); QSvgTinyDocument *doc = nullptr; if (handler.ok()) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtsvg-everywhere-src-5.15.1/src/svg/qt_attribution.json new/qtsvg-everywhere-src-5.15.2/src/svg/qt_attribution.json --- old/qtsvg-everywhere-src-5.15.1/src/svg/qt_attribution.json 2020-08-24 11:20:54.000000000 +0200 +++ new/qtsvg-everywhere-src-5.15.2/src/svg/qt_attribution.json 2020-10-27 09:02:11.000000000 +0100 @@ -6,7 +6,8 @@ "Files": "qtsvghandler.cpp", "Description": "Some code for arc handling is derived from code from the XSVG project.", - "License": "MIT \"Old Style\" License", + "License": "Historical Permission Notice and Disclaimer - sell variant", + "LicenseId": "HPND-sell-variant", "LicenseFile": "XSVG_LICENSE.txt", - "Copyright": "Copyright 2002 USC/Information Sciences Institute" + "Copyright": "Copyright 2002 USC/Information Sciences Institute" } _______________________________________________ openSUSE Commits mailing list -- commit@lists.opensuse.org To unsubscribe, email commit-le...@lists.opensuse.org List Netiquette: https://en.opensuse.org/openSUSE:Mailing_list_netiquette List Archives: https://lists.opensuse.org/archives/list/commit@lists.opensuse.org