1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-24 09:08:07 +02:00

Add validation for callsubr and callgsubr for type 2 charstrings.

This commit is contained in:
Brendan Dahl 2016-01-05 09:53:31 -08:00
parent 4e9ea35eee
commit eb7c36beb6
6 changed files with 235 additions and 115 deletions

View file

@ -26,6 +26,7 @@
!issue5564_reduced.pdf
!canvas.pdf
!complex_ttf_font.pdf
!issue3694_reduced.pdf
!extgstate.pdf
!rotation.pdf
!simpletype3font.pdf
@ -38,6 +39,7 @@
!close-path-bug.pdf
!issue6019.pdf
!issue6621.pdf
!issue6286.pdf
!issue1055r.pdf
!issue1293r.pdf
!issue1655r.pdf

Binary file not shown.

BIN
test/pdfs/issue6286.pdf Normal file

Binary file not shown.

View file

@ -376,6 +376,18 @@
"rounds": 1,
"type": "load"
},
{ "id": "issue6286",
"file": "pdfs/issue6286.pdf",
"md5": "d13fd1b98fb1c9980356314fd1d3a91b",
"rounds": 1,
"type": "eq"
},
{ "id": "issue3694_reduced",
"file": "pdfs/issue_3694_reduced.pdf",
"md5": "c1438c7bad12d70c4cd684f8ce04448f",
"rounds": 1,
"type": "eq"
},
{ "id": "bug847420",
"file": "pdfs/bug847420.pdf",
"md5": "0decd96fec4ef858c2c663a6de24e887",

View file

@ -101,7 +101,8 @@ describe('font', function() {
14 // endchar
]);
parser.bytes = bytes;
var charStrings = parser.parseCharStrings(0).charStrings;
var charStringsIndex = parser.parseIndex(0).obj;
var charStrings = parser.parseCharStrings(charStringsIndex).charStrings;
expect(charStrings.count).toEqual(1);
// shoudn't be sanitized
expect(charStrings.get(0).length).toEqual(38);
@ -116,7 +117,8 @@ describe('font', function() {
0, // offset[0]
237, 247, 22, 247, 72, 204, 247, 86, 14]);
parser.bytes = bytes;
var result = parser.parseCharStrings(0);
var charStringsIndex = parser.parseIndex(0).obj;
var result = parser.parseCharStrings(charStringsIndex);
expect(result.charStrings.count).toEqual(1);
expect(result.charStrings.get(0).length).toEqual(1);
expect(result.seacs.length).toEqual(1);
@ -139,7 +141,8 @@ describe('font', function() {
0, // offset[0]
237, 247, 22, 247, 72, 204, 247, 86, 14]);
parser.bytes = bytes;
var result = parser.parseCharStrings(0);
var charStringsIndex = parser.parseIndex(0).obj;
var result = parser.parseCharStrings(charStringsIndex);
expect(result.charStrings.count).toEqual(1);
expect(result.charStrings.get(0).length).toEqual(9);
expect(result.seacs.length).toEqual(0);
@ -154,7 +157,8 @@ describe('font', function() {
0, // offset[0]
14]);
parser.bytes = bytes;
var result = parser.parseCharStrings(0);
var charStringsIndex = parser.parseIndex(0).obj;
var result = parser.parseCharStrings(charStringsIndex);
expect(result.charStrings.count).toEqual(1);
expect(result.charStrings.get(0)[0]).toEqual(14);
expect(result.seacs.length).toEqual(0);