1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-26 10:08:06 +02:00

Merge pull request #13640 from Snuffleupagus/issue-6759

Add non-PRODUCTION/TESTING overflow `assert`s to various string helper-functions (issue 6759)
This commit is contained in:
Tim van der Meij 2021-06-29 21:22:34 +02:00 committed by GitHub
commit 6307349e31
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 52 additions and 4 deletions

View file

@ -3788,6 +3788,9 @@ class PartialEvaluator {
firstChar,
lastChar,
toUnicode,
xHeight: 0,
capHeight: 0,
italicAngle: 0,
isType3Font,
};
const widths = dict.get("Widths");
@ -3919,10 +3922,10 @@ class PartialEvaluator {
bbox: descriptor.getArray("FontBBox") || dict.getArray("FontBBox"),
ascent: descriptor.get("Ascent"),
descent: descriptor.get("Descent"),
xHeight: descriptor.get("XHeight"),
capHeight: descriptor.get("CapHeight"),
xHeight: descriptor.get("XHeight") || 0,
capHeight: descriptor.get("CapHeight") || 0,
flags: descriptor.get("Flags"),
italicAngle: descriptor.get("ItalicAngle"),
italicAngle: descriptor.get("ItalicAngle") || 0,
isType3Font,
cssFontInfo,
scaleFactors: glyphScaleFactors,

View file

@ -257,10 +257,28 @@ function int32(b0, b1, b2, b3) {
}
function string16(value) {
if (
typeof PDFJSDev === "undefined" ||
PDFJSDev.test("!PRODUCTION || TESTING")
) {
assert(
typeof value === "number" && Math.abs(value) < 2 ** 16,
`string16: Unexpected input "${value}".`
);
}
return String.fromCharCode((value >> 8) & 0xff, value & 0xff);
}
function safeString16(value) {
if (
typeof PDFJSDev === "undefined" ||
PDFJSDev.test("!PRODUCTION || TESTING")
) {
assert(
typeof value === "number" && !Number.isNaN(value),
`safeString16: Unexpected input "${value}".`
);
}
// clamp value to the 16-bit int range
if (value > 0x7fff) {
value = 0x7fff;
@ -751,7 +769,7 @@ function createPostTable(properties) {
string32(angle) + // italicAngle
"\x00\x00" + // underlinePosition
"\x00\x00" + // underlineThickness
string32(properties.fixedPitch) + // isFixedPitch
string32(properties.fixedPitch ? 1 : 0) + // isFixedPitch
"\x00\x00\x00\x00" + // minMemType42
"\x00\x00\x00\x00" + // maxMemType42
"\x00\x00\x00\x00" + // minMemType1