filter/source/graphicfilter/ieps/ieps.cxx | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-)
New commits: commit f85fb724d52a0fff9c64365cd202ae8975492c05 Author: Caolán McNamara <caol...@redhat.com> Date: Thu Jan 26 16:01:57 2017 +0000 ofz: check eps seeks are sane and succeeded Change-Id: I0eb45e1c1ffd91682ed0ce6a6a74eab54666d715 diff --git a/filter/source/graphicfilter/ieps/ieps.cxx b/filter/source/graphicfilter/ieps/ieps.cxx index f50f996..912be13 100644 --- a/filter/source/graphicfilter/ieps/ieps.cxx +++ b/filter/source/graphicfilter/ieps/ieps.cxx @@ -519,6 +519,14 @@ void MakePreview(sal_uInt8* pBuf, sal_uInt32 nBytesRead, rGraphic = aMtf; } +namespace +{ + bool checkSeek(SvStream &rSt, sal_uInt32 nOffset) + { + const sal_uInt64 nMaxSeek(rSt.Tell() + rSt.remainingSize()); + return (nOffset <= nMaxSeek && rSt.Seek(nOffset) == nOffset); + } +} //================== GraphicImport - the exported function ================ @@ -549,10 +557,9 @@ ipsGraphicImport( SvStream & rStream, Graphic & rGraphic, FilterConfigItem* ) if ( nSizeWMF ) { - if ( nPosWMF != 0 ) + if (nPosWMF && checkSeek(rStream, nOrigPos + nPosWMF)) { - rStream.Seek( nOrigPos + nPosWMF ); - if ( GraphicConverter::Import( rStream, aGraphic, ConvertDataFormat::WMF ) == ERRCODE_NONE ) + if (GraphicConverter::Import(rStream, aGraphic, ConvertDataFormat::WMF) == ERRCODE_NONE) bHasPreview = bRetValue = true; } } @@ -562,9 +569,8 @@ ipsGraphicImport( SvStream & rStream, Graphic & rGraphic, FilterConfigItem* ) // else we have to get the tiff grafix - if ( nPosTIFF && nSizeTIFF ) + if (nPosTIFF && nSizeTIFF && checkSeek(rStream, nOrigPos + nPosTIFF)) { - rStream.Seek( nOrigPos + nPosTIFF ); if ( GraphicConverter::Import( rStream, aGraphic, ConvertDataFormat::TIF ) == ERRCODE_NONE ) { MakeAsMeta(aGraphic);
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits