[poppler] poppler/SplashOutputDev.cc
Albert Astals Cid
aacid at kemper.freedesktop.org
Thu Jan 31 14:53:49 PST 2008
poppler/SplashOutputDev.cc | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
New commits:
commit 1da2091807ae7f7d4d3f446953c41b4c440d4b1b
Author: Albert Astals Cid <aacid at kde.org>
Date: Thu Jan 31 23:52:20 2008 +0100
Ensure we don't draw outside the main bitmap on SplashOutputDev::setSoftMask
Fixes crash on http://bugs.kde.org/show_bug.cgi?id=157000
diff --git a/poppler/SplashOutputDev.cc b/poppler/SplashOutputDev.cc
index 5315bfc..9aa99db 100644
--- a/poppler/SplashOutputDev.cc
+++ b/poppler/SplashOutputDev.cc
@@ -2653,8 +2653,12 @@ void SplashOutputDev::setSoftMask(GfxState * /*state*/, double * /*bbox*/,
memset(softMask->getDataPtr(), 0,
softMask->getRowSize() * softMask->getHeight());
p = softMask->getDataPtr() + ty * softMask->getRowSize() + tx;
- for (y = 0; y < tBitmap->getHeight(); ++y) {
- for (x = 0; x < tBitmap->getWidth(); ++x) {
+ int xMax = tBitmap->getWidth();
+ int yMax = tBitmap->getHeight();
+ if (xMax + tx > bitmap->getWidth()) xMax = bitmap->getWidth() - tx;
+ if (yMax + ty > bitmap->getHeight()) yMax = bitmap->getHeight() - ty;
+ for (y = 0; y < yMax; ++y) {
+ for (x = 0; x < xMax; ++x) {
tBitmap->getPixel(x, y, color);
if (alpha) {
//~ unimplemented
More information about the poppler
mailing list