diff --git a/src/core/evaluator.js b/src/core/evaluator.js index c906abce558ab..2828893474a8f 100644 --- a/src/core/evaluator.js +++ b/src/core/evaluator.js @@ -63,7 +63,6 @@ import { LocalTilingPatternCache, RegionalImageCache, } from "./image_utils.js"; -import { NullStream, Stream } from "./stream.js"; import { BaseStream } from "./base_stream.js"; import { bidi } from "./bidi.js"; import { ColorSpace } from "./colorspace.js"; @@ -77,6 +76,7 @@ import { ImageResizer } from "./image_resizer.js"; import { MurmurHash3_64 } from "../shared/murmurhash3.js"; import { OperatorList } from "./operator_list.js"; import { PDFImage } from "./image.js"; +import { Stream } from "./stream.js"; const DefaultPartialEvaluatorOptions = Object.freeze({ maxImageSize: -1, @@ -4425,12 +4425,20 @@ class PartialEvaluator { let fontFile, subtype, length1, length2, length3; try { fontFile = descriptor.get("FontFile", "FontFile2", "FontFile3"); + + if (fontFile) { + if (!(fontFile instanceof BaseStream)) { + throw new FormatError("FontFile should be a stream"); + } else if (fontFile.isEmpty) { + throw new FormatError("FontFile is empty"); + } + } } catch (ex) { if (!this.options.ignoreErrors) { throw ex; } warn(`translateFont - fetching "${fontName.name}" font file: "${ex}".`); - fontFile = new NullStream(); + fontFile = null; } let isInternalFont = false; let glyphScaleFactors = null; diff --git a/test/pdfs/issue18941.pdf.link b/test/pdfs/issue18941.pdf.link new file mode 100644 index 0000000000000..d2402e7405df0 --- /dev/null +++ b/test/pdfs/issue18941.pdf.link @@ -0,0 +1 @@ +https://github.com/user-attachments/files/17473385/21_10_2024_FAMI.INVERSION.SAS_901060703_inicial.pdf diff --git a/test/test_manifest.json b/test/test_manifest.json index 749cdf6c88c2f..38698ad8a4d03 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -2352,6 +2352,15 @@ "lastPage": 3, "type": "eq" }, + { + "id": "issue18941", + "file": "pdfs/issue18941.pdf", + "md5": "6288e69c1dd240859c1d49c22a53a5c7", + "rounds": 1, + "link": true, + "lastPage": 1, + "type": "eq" + }, { "id": "f1040", "file": "pdfs/f1040.pdf",