diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-06-26 11:58:30 +0100 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2018-07-02 10:52:27 +0200 |
commit | c47fd497851891963fab0ae3f529f721b0f4aa77 (patch) | |
tree | d08e1dfbda337a25256c5d0d0bf7e0e4d656eca3 /drawinglayer | |
parent | dc58872a7296c0577e7dbe2ba41c33246386749d (diff) |
forcepoint#47 bail when we detect the emf is broken
Change-Id: I065635393763af774b45cbba6bd85c4334383b93
Reviewed-on: https://gerrit.libreoffice.org/56458
Tested-by: Jenkins
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
(cherry picked from commit 8e5441469e07e85c5bd278ac5777eb2b550f900a)
Diffstat (limited to 'drawinglayer')
-rw-r--r-- | drawinglayer/source/tools/emfphelperdata.cxx | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drawinglayer/source/tools/emfphelperdata.cxx b/drawinglayer/source/tools/emfphelperdata.cxx index 2c49949870f4..509ce5339a55 100644 --- a/drawinglayer/source/tools/emfphelperdata.cxx +++ b/drawinglayer/source/tools/emfphelperdata.cxx @@ -837,12 +837,21 @@ namespace emfplushelper next = rMS.Tell() + (size - 12); if (size < 12) + { SAL_WARN("drawinglayer", "Size field is less than 12 bytes"); + break; + } else if (size > length) + { SAL_WARN("drawinglayer", "Size field is greater than bytes left"); + break; + } if (dataSize > (size - 12)) + { SAL_WARN("drawinglayer", "DataSize field is greater than Size-12"); + break; + } SAL_INFO("drawinglayer", "EMF+ record size: " << size << " type: " << emfTypeToName(type) << " flags: " << flags << " data size: " << dataSize); |