diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-03-01 11:12:45 +0000 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2017-03-02 10:11:18 +0000 |
commit | 6f3cc872c58d8b34ca9f0a06f2d65b3b6cc1c7ee (patch) | |
tree | a9d41b5a77f36a909f1e8ae71c91fad98f716ba0 | |
parent | 362ff67556cca0890ca01f2de44596491c0e9bc8 (diff) |
ofz: Z_NEED_DICT is unsupported
Change-Id: Ib0945d5a4606915aff9ee3019203caaf2a3cc7c5
(cherry picked from commit aacaacc16938b030a1341d8dbaf56c6a2efeb1dc)
Reviewed-on: https://gerrit.libreoffice.org/34743
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
-rw-r--r-- | tools/source/zcodec/zcodec.cxx | 2 | ||||
-rw-r--r-- | vcl/qa/cppunit/graphicfilter/data/bmp/fail/nodict-compress.bmp | bin | 0 -> 110 bytes | |||
-rw-r--r-- | vcl/source/gdi/dibtools.cxx | 5 |
3 files changed, 4 insertions, 3 deletions
diff --git a/tools/source/zcodec/zcodec.cxx b/tools/source/zcodec/zcodec.cxx index 161aa33e41ad..c935bb8c4562 100644 --- a/tools/source/zcodec/zcodec.cxx +++ b/tools/source/zcodec/zcodec.cxx @@ -222,7 +222,7 @@ long ZCodec::Read( SvStream& rIStm, sal_uInt8* pData, sal_uInt32 nSize ) } err = mbStatus ? inflate(PZSTREAM, Z_NO_FLUSH) : Z_ERRNO; - if ( err < 0 ) + if (err < 0 || err == Z_NEED_DICT) { // Accept Z_BUF_ERROR as EAGAIN or EWOULDBLOCK. mbStatus = (err == Z_BUF_ERROR); diff --git a/vcl/qa/cppunit/graphicfilter/data/bmp/fail/nodict-compress.bmp b/vcl/qa/cppunit/graphicfilter/data/bmp/fail/nodict-compress.bmp Binary files differnew file mode 100644 index 000000000000..a75d6ebae540 --- /dev/null +++ b/vcl/qa/cppunit/graphicfilter/data/bmp/fail/nodict-compress.bmp diff --git a/vcl/source/gdi/dibtools.cxx b/vcl/source/gdi/dibtools.cxx index 6bf5843fcdc5..7047fcf5209b 100644 --- a/vcl/source/gdi/dibtools.cxx +++ b/vcl/source/gdi/dibtools.cxx @@ -853,7 +853,8 @@ bool ImplReadDIBBody( SvStream& rIStm, Bitmap& rBmp, AlphaMask* pBmpAlpha, sal_u // Seek behind the encoded block. There might have been bytes left or the codec might have read more than necessary. rIStm.Seek(nCodedSize + nCodedPos); } - else + + if (aData.empty()) { // add something so we can take address of the first element aData.resize(1); @@ -862,7 +863,7 @@ bool ImplReadDIBBody( SvStream& rIStm, Bitmap& rBmp, AlphaMask* pBmpAlpha, sal_u // set decoded bytes to memory stream, // from which we will read the bitmap data - pMemStm.reset( new SvMemoryStream); + pMemStm.reset(new SvMemoryStream); pIStm = pMemStm.get(); assert(!aData.empty()); pMemStm->SetBuffer( &aData.front(), nUncodedSize, nUncodedSize ); |