Kaydet (Commit) ace6fcc8 authored tarafından Caolán McNamara's avatar Caolán McNamara Kaydeden (comit) Andras Timar

detect loop in tif format

Change-Id: I27645566cd9fc0ac8cf753f0217ae6cf0fa9929e
(cherry picked from commit 290465b0)
Reviewed-on: https://gerrit.libreoffice.org/17149Reviewed-by: 's avatarDavid Tardon <dtardon@redhat.com>
Tested-by: 's avatarDavid Tardon <dtardon@redhat.com>
üst 5766f3c8
...@@ -1210,9 +1210,19 @@ bool TIFFReader::ReadTIFF(SvStream & rTIFF, Graphic & rGraphic ) ...@@ -1210,9 +1210,19 @@ bool TIFFReader::ReadTIFF(SvStream & rTIFF, Graphic & rGraphic )
} }
while( nOffset ); while( nOffset );
std::vector<sal_uInt32> aSeenIfds;
for ( sal_uInt32 nNextIfd = nFirstIfd; nNextIfd && bStatus; ) for ( sal_uInt32 nNextIfd = nFirstIfd; nNextIfd && bStatus; )
{ {
pTIFF->Seek( nOrigPos + nNextIfd ); if (std::find(aSeenIfds.begin(), aSeenIfds.end(), nNextIfd) != aSeenIfds.end())
{
SAL_WARN("filter.tiff", "Parsing error: " << nNextIfd <<
" already processed, format loop");
bStatus = false;
break;
}
pTIFF->Seek(nOrigPos + nNextIfd);
aSeenIfds.push_back(nNextIfd);
{ {
bByteSwap = false; bByteSwap = false;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment