summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2016-12-22 10:51:39 +0000
committerCaolán McNamara <caolanm@redhat.com>2016-12-22 10:52:21 +0000
commit3bff2da31ed580817f6b5b653f48727e38078af5 (patch)
treea4ed368b313295ab51bad8fe610c91301f7ed660 /vcl
parent2a08419ef27afe756402eb18ffd2434a476c9bc5 (diff)
Resolves: ofz#310: Sanitize 1 bit bitmap palette indexes too
Change-Id: Ied2b71eb1c9088bbbff5fed97f7a04b43f4b4827 (cherry picked from commit b08e48166310ab8a53f06f4fee227a948416cf4a)
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/gdi/dibtools.cxx6
1 files changed, 5 insertions, 1 deletions
diff --git a/vcl/source/gdi/dibtools.cxx b/vcl/source/gdi/dibtools.cxx
index ebe9d895e20f..6bf5843fcdc5 100644
--- a/vcl/source/gdi/dibtools.cxx
+++ b/vcl/source/gdi/dibtools.cxx
@@ -565,6 +565,9 @@ bool ImplReadDIBBits(SvStream& rIStm, DIBV5Header& rHeader, BitmapWriteAccess& r
{
case 1:
{
+ const bool bHasPalette = rAcc.HasPalette();
+ const sal_uInt16 nPaletteEntryCount = rAcc.GetPaletteEntryCount();
+
for( ; nCount--; nY += nI )
{
sal_uInt8 * pTmp = pBuf.get();
@@ -583,7 +586,8 @@ bool ImplReadDIBBits(SvStream& rIStm, DIBV5Header& rHeader, BitmapWriteAccess& r
cTmp = *pTmp++;
}
- rAcc.SetPixelIndex( nY, nX, (cTmp >> --nShift) & 1);
+ auto nIndex = (cTmp >> --nShift) & 1;
+ rAcc.SetPixelIndex(nY, nX, SanitizePaletteIndex(nIndex, bHasPalette, nPaletteEntryCount));
}
}
}