summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndras Timar <andras.timar@collabora.com>2022-01-03 22:12:01 +0100
committerAndras Timar <andras.timar@collabora.com>2022-01-05 13:56:48 +0100
commit4aedf0956fb6849781bfb5139b04d8ca0708acdc (patch)
tree3a187a32e3403bcb4ff203149eec0c0df719f60c
parent2ac23d25f0670c3274603deb88aef352def635a1 (diff)
tdf#73523 do not seek backwards, the color mask info is not there
Change-Id: I97f0fd4f184ea77beeab8b22fc98fdb78472d9bb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127928 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Andras Timar <andras.timar@collabora.com>
-rw-r--r--vcl/qa/cppunit/graphicfilter/data/bmp/pass/crash-1.bmp (renamed from vcl/qa/cppunit/graphicfilter/data/bmp/fail/crash-1.bmp)bin632 -> 632 bytes
-rw-r--r--vcl/source/gdi/dibtools.cxx5
2 files changed, 2 insertions, 3 deletions
diff --git a/vcl/qa/cppunit/graphicfilter/data/bmp/fail/crash-1.bmp b/vcl/qa/cppunit/graphicfilter/data/bmp/pass/crash-1.bmp
index 84b6c35c87e6..84b6c35c87e6 100644
--- a/vcl/qa/cppunit/graphicfilter/data/bmp/fail/crash-1.bmp
+++ b/vcl/qa/cppunit/graphicfilter/data/bmp/pass/crash-1.bmp
Binary files differ
diff --git a/vcl/source/gdi/dibtools.cxx b/vcl/source/gdi/dibtools.cxx
index ce1df4a68a65..949423a1f255 100644
--- a/vcl/source/gdi/dibtools.cxx
+++ b/vcl/source/gdi/dibtools.cxx
@@ -533,10 +533,9 @@ bool ImplReadDIBBits(SvStream& rIStm, DIBV5Header& rHeader, BitmapWriteAccess& r
}
else
{
- // Read color mask
- if(bTCMask && BITFIELDS == rHeader.nCompression)
+ // Read color mask. An additional 12 bytes of color bitfields follow the info header (WinBMPv3-NT)
+ if(bTCMask && BITFIELDS == rHeader.nCompression && DIBINFOHEADERSIZE == rHeader.nSize)
{
- rIStm.SeekRel( -12 );
rIStm.ReadUInt32( nRMask );
rIStm.ReadUInt32( nGMask );
rIStm.ReadUInt32( nBMask );