From 081e897588ecef6ea7cf06a7413a66ef5b644a6c Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Mon, 10 Oct 2022 09:40:30 +0200 Subject: [PATCH] Ensure that `Page.getOperatorList` handles Annotation parsing errors correctly (issue 15557) *Fixes a regression from PR 15246, sorry about that!* The return value of all `Annotation.getOperatorList` methods was changed in PR 15246, however I missed updating the error code-path in `Page.getOperatorList` which thus breaks all operatorList-parsing for pages with corrupt Annotations. --- src/core/document.js | 6 +++++- test/pdfs/.gitignore | 1 + test/pdfs/issue15557.pdf | Bin 0 -> 11823 bytes test/test_manifest.json | 7 +++++++ 4 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 test/pdfs/issue15557.pdf diff --git a/src/core/document.js b/src/core/document.js index 8d53c5434..bcb751411 100644 --- a/src/core/document.js +++ b/src/core/document.js @@ -486,7 +486,11 @@ class Page { "getOperatorList - ignoring annotation data during " + `"${task.name}" task: "${reason}".` ); - return null; + return { + opList: null, + separateForm: false, + separateCanvas: false, + }; }) ); } diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 80524c365..a9f18fd0f 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -366,6 +366,7 @@ !issue1045.pdf !issue5010.pdf !issue10339_reduced.pdf +!issue15557.pdf !issue4934.pdf !issue4650.pdf !issue6721_reduced.pdf diff --git a/test/pdfs/issue15557.pdf b/test/pdfs/issue15557.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e95c698a32babc31714afaf5cb2f17e1756bcf73 GIT binary patch literal 11823 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