diff --git a/src/fonts.js b/src/fonts.js index 8803323a5..36f0601af 100644 --- a/src/fonts.js +++ b/src/fonts.js @@ -5331,11 +5331,8 @@ var Type1Parser = (function Type1ParserClosure() { case 'Subrs': var num = this.readInt(); this.getToken(); // read in 'array' - for (var j = 0; j < num; ++j) { - token = this.getToken(); // read in 'dup' + while ((token = this.getToken()) === 'dup') { var index = this.readInt(); - if (index > j) - j = index; var length = this.readInt(); this.getToken(); // read in 'RD' or '-|' var data = stream.makeSubStream(stream.pos + 1, length); diff --git a/test/pdfs/issue3207.pdf.link b/test/pdfs/issue3207.pdf.link new file mode 100644 index 000000000..66d4185d7 --- /dev/null +++ b/test/pdfs/issue3207.pdf.link @@ -0,0 +1 @@ +https://www.eff.org/sites/default/files/filenode/DMCA/NTIA%20DMCA%20White%20Paper.pdf diff --git a/test/test_manifest.json b/test/test_manifest.json index 1f0e5f879..bb9960868 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -1144,6 +1144,15 @@ "rounds": 1, "type": "eq" }, + { "id": "issue3207", + "file": "pdfs/issue3207.pdf", + "md5": "667248adae0462c7f5acc7757d97b720", + "link": true, + "firstPage": 1, + "lastPage": 1, + "rounds": 1, + "type": "eq" + }, { "id": "issue2829", "file": "pdfs/issue2829.pdf", "md5": "f32b28cf8792f6ccc470446bfbb38584", diff --git a/test/unit/font_spec.js b/test/unit/font_spec.js index d9013ea18..4efccb979 100644 --- a/test/unit/font_spec.js +++ b/test/unit/font_spec.js @@ -360,6 +360,7 @@ describe('font', function() { '/ExpansionFactor 99\n' + '/Subrs 1 array\n' + 'dup 0 1 RD x noaccess put\n'+ + 'end\n' + '/CharStrings 46 dict dup begin\n' + '/.notdef 1 RD x ND' + '\n' + 'end');