diff options
Diffstat (limited to 'filter/source/msfilter/msdffimp.cxx')
-rw-r--r-- | filter/source/msfilter/msdffimp.cxx | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx index 96db3884ddbf..62dcebdea248 100644 --- a/filter/source/msfilter/msdffimp.cxx +++ b/filter/source/msfilter/msdffimp.cxx @@ -6552,7 +6552,11 @@ bool SvxMSDffManager::GetBLIPDirect( SvStream& rBLIPStream, Graphic& rData, tool else { // and unleash our filter GraphicFilter& rGF = GraphicFilter::GetGraphicFilter(); - Graphic aGraphic = rGF.ImportUnloadedGraphic(*pGrStream); + // ImportUnloadedGraphic() may simply read the entire rest of the stream, + // which may be very large if the whole document is large. Limit the read + // size to the size of this record. + sal_uInt64 maxSize = pGrStream == &rBLIPStream ? nLength : 0; + Graphic aGraphic = rGF.ImportUnloadedGraphic(*pGrStream, maxSize); if (aGraphic) { rData = aGraphic; |