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

don't hang with 0 len causing no progression

Change-Id: Ie553dab291c7bfbde033d89b84159aff6b42a160
(cherry picked from commit 15dfcb7f)
Reviewed-on: https://gerrit.libreoffice.org/17084Reviewed-by: 's avatarMichael Meeks <michael.meeks@collabora.com>
Tested-by: 's avatarMichael Meeks <michael.meeks@collabora.com>
üst 83060106
......@@ -2240,7 +2240,6 @@ void OS2METReader::ReadImageData(sal_uInt16 nDataID, sal_uInt16 nDataLen)
void OS2METReader::ReadFont(sal_uInt16 nFieldSize)
{
sal_uLong nPos, nMaxPos;
sal_uInt16 nLen;
sal_uInt8 nByte, nTripType, nTripType2;
OSFont * pF=new OSFont;
pF->pSucc=pFontList; pFontList=pF;
......@@ -2252,7 +2251,13 @@ void OS2METReader::ReadFont(sal_uInt16 nFieldSize)
nMaxPos=nPos+(sal_uLong)nFieldSize;
pOS2MET->SeekRel(2); nPos+=2;
while (nPos<nMaxPos && pOS2MET->GetError()==0) {
pOS2MET->ReadUChar( nByte ); nLen =((sal_uInt16)nByte) & 0x00ff;
pOS2MET->ReadUChar( nByte );
sal_uInt16 nLen = ((sal_uInt16)nByte) & 0x00ff;
if (nLen == 0)
{
pOS2MET->SetError(SVSTREAM_FILEFORMAT_ERROR);
ErrorCode=4;
}
pOS2MET->ReadUChar( nTripType );
switch (nTripType) {
case 0x02:
......@@ -2304,7 +2309,8 @@ void OS2METReader::ReadFont(sal_uInt16 nFieldSize)
break;
}
}
nPos+=nLen; pOS2MET->Seek(nPos);
nPos+=nLen;
pOS2MET->Seek(nPos);
}
}
......
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