diff options
author | Robert Loehning <robert.loehning@qt.io> | 2020-08-20 18:48:37 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2020-08-24 13:50:59 +0000 |
commit | ba2477be62b03bb97af13e8c1d51ac6fb5010095 (patch) | |
tree | 982f85fc5c4b2d9460efc74bb5d0e0bafc1d87a2 | |
parent | bc83d241c0d7754cd636eef4db3cd359c35b4297 (diff) |
Initialize QSvgHandler with QBuffer instead of QByteArray
Reduces memory consumption significantly for huge files.
Fixes: oss-fuzz-24347
Change-Id: Iebf58d5f73030336d219ad770e1d1d2798c10067
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
(cherry picked from commit d71817248621651dc44d0ba67a74cd05d5f9619c)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/svg/qsvgtinydocument.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/svg/qsvgtinydocument.cpp b/src/svg/qsvgtinydocument.cpp index 12dd979..dd2c1ab 100644 --- a/src/svg/qsvgtinydocument.cpp +++ b/src/svg/qsvgtinydocument.cpp @@ -212,7 +212,10 @@ QSvgTinyDocument * QSvgTinyDocument::load(const QByteArray &contents) } #endif - QSvgHandler handler(contents); + QBuffer buffer; + buffer.setData(contents); + buffer.open(QIODevice::ReadOnly); + QSvgHandler handler(&buffer); QSvgTinyDocument *doc = nullptr; if (handler.ok()) { |