From e318820a39eee9ae0b112772e5e33d0e668641a5 Mon Sep 17 00:00:00 2001 From: = <=> Date: Wed, 21 Sep 2011 10:04:21 -0700 Subject: [PATCH] Ignore previously parsed xref streams --- pdf.js | 9 +++++---- test/pdfs/f1040.pdf.link | 1 + test/test_manifest.json | 6 ++++++ 3 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 test/pdfs/f1040.pdf.link diff --git a/pdf.js b/pdf.js index 224becdf1..9a0b0977a 100644 --- a/pdf.js +++ b/pdf.js @@ -3094,10 +3094,11 @@ var XRef = (function() { // check for 'XRefStm' key if (IsInt(obj = dict.get('XRefStm'))) { var pos = obj; - if (pos in this.xrefstms) - error('Invalid XRef table'); - this.xrefstms[pos] = 1; // avoid infinite recursion - this.readXRef(pos); + // ignore previously loaded xref streams (possible infinite recursion) + if (!(pos in this.xrefstms)) { + this.xrefstms[pos] = 1; + this.readXRef(pos); + } } return dict; diff --git a/test/pdfs/f1040.pdf.link b/test/pdfs/f1040.pdf.link new file mode 100644 index 000000000..a3299fc54 --- /dev/null +++ b/test/pdfs/f1040.pdf.link @@ -0,0 +1 @@ +http://www.irs.gov/pub/irs-pdf/f1040.pdf diff --git a/test/test_manifest.json b/test/test_manifest.json index a3115764a..edf13b7c5 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -139,5 +139,11 @@ "link": true, "rounds": 1, "type": "load" + }, + { "id": "f1040", + "file": "pdfs/f1040.pdf", + "link": true, + "rounds": 1, + "type": "load" } ]