summaryrefslogtreecommitdiff
path: root/emfio
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-03-06 09:24:04 +0000
committerCaolán McNamara <caolanm@redhat.com>2018-03-06 13:28:03 +0100
commit7cfb3d2873f0e281e20ccd5ff004746eb4bd4ce5 (patch)
tree187a44db7cf2a15626448cd8d48d4ad05b20b889 /emfio
parent683a68cb5106e99db0fbe892b5784d837cf8cb27 (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.cxx23
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