From 50a70429ecd6e8be8b9a7f39933dab4cec4b2be4 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Thu, 12 Nov 2015 21:41:16 +0100 Subject: [PATCH] Ignore the /Mask entry in images unless its /ImageMask entry is explicitly set to `true` (issue 6621) Fixes 6621. --- src/core/image.js | 7 ++++++- test/pdfs/.gitignore | 1 + test/pdfs/issue6621.pdf | Bin 0 -> 14521 bytes test/test_manifest.json | 7 +++++++ 4 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 test/pdfs/issue6621.pdf diff --git a/src/core/image.js b/src/core/image.js index 5f3aa6c13..2d1f9d6e1 100644 --- a/src/core/image.js +++ b/src/core/image.js @@ -140,7 +140,12 @@ var PDFImage = (function PDFImageClosure() { this.smask = new PDFImage(xref, res, smask, false); } else if (mask) { if (isStream(mask)) { - this.mask = new PDFImage(xref, res, mask, false, null, null, true); + var maskDict = mask.dict, imageMask = maskDict.get('ImageMask', 'IM'); + if (!imageMask) { + warn('Ignoring /Mask in image without /ImageMask.'); + } else { + this.mask = new PDFImage(xref, res, mask, false, null, null, true); + } } else { // Color key mask (just an array). this.mask = mask; diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index d47a4652b..05d5598e1 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -32,6 +32,7 @@ !issue3879r.pdf !close-path-bug.pdf !issue6019.pdf +!issue6621.pdf !issue1293r.pdf !issue6541.pdf !issue2948.pdf diff --git a/test/pdfs/issue6621.pdf b/test/pdfs/issue6621.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ea3cd73a212025a0850938506a48610f605ecddd GIT binary patch literal 14521 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 S29%7H42o7zP#dd5`+op;-