diff options
author | Caolán McNamara <caolanm@redhat.com> | 2016-12-22 10:51:39 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2016-12-22 10:52:21 +0000 |
commit | 3bff2da31ed580817f6b5b653f48727e38078af5 (patch) | |
tree | a4ed368b313295ab51bad8fe610c91301f7ed660 /vcl | |
parent | 2a08419ef27afe756402eb18ffd2434a476c9bc5 (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.cxx | 6 |
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)); } } } |