Merge pull request #7300 from Snuffleupagus/bug-1068432
Prevent adding invalid values in `CFFDict_setByKey` (bug 1068432)
This commit is contained in:
commit
b86610ffdb
@ -995,6 +995,11 @@ var CFFDict = (function CFFDictClosure() {
|
|||||||
// remove the array wrapping these types of values
|
// remove the array wrapping these types of values
|
||||||
if (type === 'num' || type === 'sid' || type === 'offset') {
|
if (type === 'num' || type === 'sid' || type === 'offset') {
|
||||||
value = value[0];
|
value = value[0];
|
||||||
|
// Ignore invalid values (fixes bug 1068432).
|
||||||
|
if (isNaN(value)) {
|
||||||
|
warn('Invalid CFFDict value: ' + value + ', for key: ' + key + '.');
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
this.values[key] = value;
|
this.values[key] = value;
|
||||||
return true;
|
return true;
|
||||||
|
1
test/pdfs/.gitignore
vendored
1
test/pdfs/.gitignore
vendored
@ -36,6 +36,7 @@
|
|||||||
!bug1020858.pdf
|
!bug1020858.pdf
|
||||||
!bug1050040.pdf
|
!bug1050040.pdf
|
||||||
!bug1200096.pdf
|
!bug1200096.pdf
|
||||||
|
!bug1068432.pdf
|
||||||
!issue5564_reduced.pdf
|
!issue5564_reduced.pdf
|
||||||
!canvas.pdf
|
!canvas.pdf
|
||||||
!bug1132849.pdf
|
!bug1132849.pdf
|
||||||
|
BIN
test/pdfs/bug1068432.pdf
Normal file
BIN
test/pdfs/bug1068432.pdf
Normal file
Binary file not shown.
@ -203,6 +203,13 @@
|
|||||||
"lastPage": 1,
|
"lastPage": 1,
|
||||||
"type": "eq"
|
"type": "eq"
|
||||||
},
|
},
|
||||||
|
{ "id": "bug1068432",
|
||||||
|
"file": "pdfs/bug1068432.pdf",
|
||||||
|
"md5": "b76ac8d7d0ef471f28535c881f421e33",
|
||||||
|
"rounds": 1,
|
||||||
|
"link": false,
|
||||||
|
"type": "eq"
|
||||||
|
},
|
||||||
{ "id": "issue1512",
|
{ "id": "issue1512",
|
||||||
"file": "pdfs/issue1512r.pdf",
|
"file": "pdfs/issue1512r.pdf",
|
||||||
"md5": "af48ede2658d99cca423147085c6609b",
|
"md5": "af48ede2658d99cca423147085c6609b",
|
||||||
|
@ -95,6 +95,15 @@ describe('CFFParser', function() {
|
|||||||
expect(topDict.getByName('Private')).toEqual([45, 102]);
|
expect(topDict.getByName('Private')).toEqual([45, 102]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('refuses to add topDict key with invalid value (bug 1068432)',
|
||||||
|
function () {
|
||||||
|
var topDict = cff.topDict;
|
||||||
|
var defaultValue = topDict.getByName('UnderlinePosition');
|
||||||
|
|
||||||
|
topDict.setByKey(/* [12, 3] = */ 3075, [NaN]);
|
||||||
|
expect(topDict.getByName('UnderlinePosition')).toEqual(defaultValue);
|
||||||
|
});
|
||||||
|
|
||||||
it('parses a CharString having cntrmask', function() {
|
it('parses a CharString having cntrmask', function() {
|
||||||
var bytes = new Uint8Array([0, 1, // count
|
var bytes = new Uint8Array([0, 1, // count
|
||||||
1, // offsetSize
|
1, // offsetSize
|
||||||
|
Loading…
x
Reference in New Issue
Block a user