diff --git a/src/core/image.js b/src/core/image.js index 1c3c721c7..af0bf6f4a 100644 --- a/src/core/image.js +++ b/src/core/image.js @@ -275,12 +275,16 @@ class PDFImage { const mask = image.dict.get("Mask"); if (smask) { - smaskData = smask; + if (smask instanceof BaseStream) { + smaskData = smask; + } else { + warn("Unsupported /SMask format."); + } } else if (mask) { if (mask instanceof BaseStream || Array.isArray(mask)) { maskData = mask; } else { - warn("Unsupported mask format."); + warn("Unsupported /Mask format."); } } diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 2306c1674..237950224 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -505,6 +505,7 @@ !poppler-85140-0.pdf !poppler-395-0-fuzzed.pdf !GHOSTSCRIPT-698804-1-fuzzed.pdf +!issue14814.pdf !poppler-91414-0-53.pdf !poppler-91414-0-54.pdf !poppler-742-0-fuzzed.pdf diff --git a/test/pdfs/issue14814.pdf b/test/pdfs/issue14814.pdf new file mode 100644 index 000000000..ce29ab3cd Binary files /dev/null and b/test/pdfs/issue14814.pdf differ diff --git a/test/test_manifest.json b/test/test_manifest.json index 9465e2712..ddccfd301 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -98,6 +98,13 @@ "rounds": 1, "type": "eq" }, + { "id": "issue14814", + "file": "pdfs/issue14814.pdf", + "md5": "a1c8b677335ff5ea0d07e35e7dffb6e8", + "rounds": 1, + "firstPage": 2, + "type": "eq" + }, { "id": "issue14269", "file": "pdfs/issue14269.pdf", "md5": "f34abf77a418f54e13fbcd03b063432e",