Prevent infinite loop in CFFParser_parseHeader
This commit is contained in:
parent
1a6e103c35
commit
5f021b067c
@ -5628,12 +5628,17 @@ var CFFParser = (function CFFParserClosure() {
|
||||
},
|
||||
parseHeader: function CFFParser_parseHeader() {
|
||||
var bytes = this.bytes;
|
||||
var bytesLength = bytes.length;
|
||||
var offset = 0;
|
||||
|
||||
while (bytes[offset] != 1)
|
||||
// Prevent an infinite loop, by checking that the offset is within the
|
||||
// bounds of the bytes array. Necessary in empty, or invalid, font files.
|
||||
while (offset < bytesLength && bytes[offset] !== 1) {
|
||||
++offset;
|
||||
|
||||
if (offset !== 0) {
|
||||
}
|
||||
if (offset >= bytesLength) {
|
||||
error('Invalid CFF header');
|
||||
} else if (offset !== 0) {
|
||||
info('cff data is shifted');
|
||||
bytes = bytes.subarray(offset);
|
||||
this.bytes = bytes;
|
||||
|
Loading…
Reference in New Issue
Block a user