summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2017-03-01 11:12:45 +0000
committerMiklos Vajna <vmiklos@collabora.co.uk>2017-03-02 10:11:18 +0000
commit6f3cc872c58d8b34ca9f0a06f2d65b3b6cc1c7ee (patch)
treea9d41b5a77f36a909f1e8ae71c91fad98f716ba0
parent362ff67556cca0890ca01f2de44596491c0e9bc8 (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.cxx2
-rw-r--r--vcl/qa/cppunit/graphicfilter/data/bmp/fail/nodict-compress.bmpbin0 -> 110 bytes
-rw-r--r--vcl/source/gdi/dibtools.cxx5
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
new file mode 100644
index 000000000000..a75d6ebae540
--- /dev/null
+++ b/vcl/qa/cppunit/graphicfilter/data/bmp/fail/nodict-compress.bmp
Binary files differ
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 );