Support corrupt PDF files with invalid/non-existent Group /CS entries (issue 11045)

The PDF file in question tries to reference a non-existent ColorSpace, which should be quite rare in practice.
This commit is contained in:
Jonas Jenwald 2019-08-05 14:40:48 +02:00
parent a666f1ef00
commit 5ac9c7c384
4 changed files with 16 additions and 2 deletions

View File

@ -263,8 +263,14 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
groupOptions.isolated = (group.get('I') || false); groupOptions.isolated = (group.get('I') || false);
groupOptions.knockout = (group.get('K') || false); groupOptions.knockout = (group.get('K') || false);
if (group.has('CS')) { if (group.has('CS')) {
colorSpace = ColorSpace.parse(group.get('CS'), this.xref, resources, colorSpace = group.get('CS');
this.pdfFunctionFactory); if (colorSpace) {
colorSpace = ColorSpace.parse(colorSpace, this.xref, resources,
this.pdfFunctionFactory);
} else {
warn('buildFormXObject - invalid/non-existent Group /CS entry: ' +
group.getRaw('CS'));
}
} }
} }

View File

@ -80,6 +80,7 @@
!issue10542_reduced.pdf !issue10542_reduced.pdf
!issue10665_reduced.pdf !issue10665_reduced.pdf
!issue11016_reduced.pdf !issue11016_reduced.pdf
!issue11045.pdf
!bad-PageLabels.pdf !bad-PageLabels.pdf
!decodeACSuccessive.pdf !decodeACSuccessive.pdf
!filled-background.pdf !filled-background.pdf

BIN
test/pdfs/issue11045.pdf Normal file

Binary file not shown.

View File

@ -2888,6 +2888,13 @@
"rounds": 1, "rounds": 1,
"type": "eq" "type": "eq"
}, },
{ "id": "issue11045",
"file": "pdfs/issue11045.pdf",
"md5": "101d4cb649cc006e0f2b14923e8d97d6",
"rounds": 1,
"link": false,
"type": "eq"
},
{ "id": "issue4890", { "id": "issue4890",
"file": "pdfs/issue4890.pdf", "file": "pdfs/issue4890.pdf",
"md5": "1666feb4cd26318c2bdbea6a175dce87", "md5": "1666feb4cd26318c2bdbea6a175dce87",