From 41fbc71ef949159d8a207675bc459c0e845b0123 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Thu, 24 Jan 2019 22:27:36 +0100 Subject: [PATCH] Ensure that `XRef.indexObjects` can handle object numbers with zero-padding (issue 10491) All objects in the PDF document follow this pattern: ``` 0000000001 0 obj << % Some content here... >> endobj 0000000002 0 obj << % More content here... endobj ``` --- src/core/obj.js | 7 ++++--- test/pdfs/issue10491.pdf.link | 1 + test/test_manifest.json | 8 ++++++++ 3 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 test/pdfs/issue10491.pdf.link diff --git a/src/core/obj.js b/src/core/obj.js index b6a2302cd..b71a503d0 100644 --- a/src/core/obj.js +++ b/src/core/obj.js @@ -1237,10 +1237,11 @@ var XRef = (function XRefClosure() { trailers.push(position); position += skipUntil(buffer, position, startxrefBytes); } else if ((m = objRegExp.exec(token))) { - if (typeof this.entries[m[1]] === 'undefined') { - this.entries[m[1]] = { + const num = m[1] | 0, gen = m[2] | 0; + if (typeof this.entries[num] === 'undefined') { + this.entries[num] = { offset: position - stream.start, - gen: m[2] | 0, + gen, uncompressed: true, }; } diff --git a/test/pdfs/issue10491.pdf.link b/test/pdfs/issue10491.pdf.link new file mode 100644 index 000000000..62daa0547 --- /dev/null +++ b/test/pdfs/issue10491.pdf.link @@ -0,0 +1 @@ +https://github.com/mozilla/pdf.js/files/2793574/14_09_02.pdf diff --git a/test/test_manifest.json b/test/test_manifest.json index 60c981d2b..9644e3b9e 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -840,6 +840,14 @@ "link": false, "type": "eq" }, + { "id": "issue10491", + "file": "pdfs/issue10491.pdf", + "md5": "0759ec46739b13bb0b66170a18d33d4f", + "rounds": 1, + "link": true, + "firstPage": 2, + "type": "eq" + }, { "id": "issue6289", "file": "pdfs/issue6289.pdf", "md5": "0869f3d147c734ec484ffd492104095d",