diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-03-06 09:24:04 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-03-06 13:28:03 +0100 |
commit | 7cfb3d2873f0e281e20ccd5ff004746eb4bd4ce5 (patch) | |
tree | 187a44db7cf2a15626448cd8d48d4ad05b20b889 /emfio | |
parent | 683a68cb5106e99db0fbe892b5784d837cf8cb27 (diff) |
ofz: timeout
Change-Id: I7cdd39f51943bd97e0e0931f44d3338a23044ab0
Reviewed-on: https://gerrit.libreoffice.org/50802
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'emfio')
-rw-r--r-- | emfio/source/reader/wmfreader.cxx | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/emfio/source/reader/wmfreader.cxx b/emfio/source/reader/wmfreader.cxx index e82d756f28b2..eafff0378716 100644 --- a/emfio/source/reader/wmfreader.cxx +++ b/emfio/source/reader/wmfreader.cxx @@ -1387,7 +1387,7 @@ namespace emfio if( mnEndPos - mnStartPos ) { - bool bEMFAvailable = false; + bool bEMFAvailable = false; while( true ) { mnCurrentAction++; @@ -1404,6 +1404,15 @@ namespace emfio break; } + + const sal_uInt32 nAvailableBytes = mnEndPos - nPos; + const sal_uInt32 nMaxPossibleRecordSize = nAvailableBytes/2; + if (mnRecSize > nMaxPossibleRecordSize) + { + mpInputStream->SetError(SVSTREAM_FILEFORMAT_ERROR); + break; + } + if ( !bEMFAvailable ) { if( !maBmpSaveList.empty() @@ -1448,16 +1457,8 @@ namespace emfio } } - const sal_uInt32 nAvailableBytes = mnEndPos - nPos; - const sal_uInt32 nMaxPossibleRecordSize = nAvailableBytes/2; - - if (mnRecSize <= nMaxPossibleRecordSize) - { - nPos += mnRecSize * 2; - mpInputStream->Seek(nPos); - } - else - mpInputStream->SetError( SVSTREAM_FILEFORMAT_ERROR ); + nPos += mnRecSize * 2; + mpInputStream->Seek(nPos); } } else |