poppler/Gfx.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-)
New commits: commit 95246d39c1289111a4ba3eb2ffbec50d7702e5eb Author: Albert Astals Cid <[email protected]> Date: Wed May 20 23:20:20 2009 +0200 Check Mask entries are int before using them, also if they are real cast to int and try to use them Fixes bug #21841 diff --git a/poppler/Gfx.cc b/poppler/Gfx.cc index 897b24b..72b1068 100644 --- a/poppler/Gfx.cc +++ b/poppler/Gfx.cc @@ -3823,7 +3823,16 @@ void Gfx::doImage(Object *ref, Stream *str, GBool inlineImg) { i < maskObj.arrayGetLength() && i < 2*gfxColorMaxComps; ++i) { maskObj.arrayGet(i, &obj1); - maskColors[i] = obj1.getInt(); + if (obj1.isInt()) { + maskColors[i] = obj1.getInt(); + } else if (obj1.isReal()) { + error(-1, "Mask entry should be an integer but it's a real, trying to use it"); + maskColors[i] = obj1.getReal(); + } else { + error(-1, "Mask entry should be an integer but it's of type %d", obj1.getType()); + obj1.free(); + goto err1; + } obj1.free(); } haveColorKeyMask = gTrue; _______________________________________________ poppler mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/poppler
