From 5d28cf5e88c3cbb3448f51eab71dbf1a1d909d45 Mon Sep 17 00:00:00 2001 From: calixteman Date: Sat, 30 May 2026 21:52:58 +0200 Subject: [PATCH] Skip the format 4 cmap sub-table when it doesn't fit its 16-bits fields It's a follow-up of bug 199861 (see https://bugzilla.mozilla.org/show_bug.cgi?id=1998618#c2). --- src/core/fonts.js | 82 +++++++++++++++++++--------- test/pdfs/.gitignore | 1 + test/pdfs/cidfont_cmap_overflow.pdf | Bin 0 -> 94168 bytes test/test_manifest.json | 7 +++ 4 files changed, 64 insertions(+), 26 deletions(-) create mode 100644 test/pdfs/cidfont_cmap_overflow.pdf diff --git a/src/core/fonts.js b/src/core/fonts.js index 720d229a5..b858e01c2 100644 --- a/src/core/fonts.js +++ b/src/core/fonts.js @@ -571,14 +571,7 @@ function getRanges(glyphs, toUnicodeExtraMap, numGlyphs) { function createCmapTable(glyphs, toUnicodeExtraMap, numGlyphs) { const ranges = getRanges(glyphs, toUnicodeExtraMap, numGlyphs); - const numTables = ranges.at(-1)[1] > 0xffff ? 2 : 1; - - const cmap = new DataBuilder({ exactLength: 12 }); - cmap.skip(2); // version, skip redundant "\x00\x00" - cmap.setInt16(numTables); // numTables - cmap.setArray([0x00, 0x03]); // platformID - cmap.setArray([0x00, 0x01]); // encodingID - cmap.setInt32(4 + numTables * 8); // start of the table record + const hasNonBmp = ranges.at(-1)[1] > 0xffff; let i, ii, j, jj; for (i = ranges.length - 1; i >= 0; --i) { @@ -603,6 +596,11 @@ function createCmapTable(glyphs, toUnicodeExtraMap, numGlyphs) { idRangeOffsets = new DataBuilder({ exactLength: segmentsLength }), glyphsIds = new DataBuilder({}); let bias = 0; + // The "length" and "idRangeOffset" fields of a format 4 sub-table are + // 16-bit, hence fonts with a large/sparse glyph mapping cannot be encoded + // that way; when that happens we rely on the format 12 sub-table instead + // (see below) and skip the format 4 one altogether. + let format4Overflow = false; for (i = 0, ii = bmpLength; i < ii; i++) { const [start, end, codes] = ranges[i]; @@ -620,7 +618,14 @@ function createCmapTable(glyphs, toUnicodeExtraMap, numGlyphs) { bias += end - start + 1; idDeltas.skip(2); // Skip redundant "\x00\x00" - idRangeOffsets.setInt16(offset); + if (offset > 0xffff) { + // The sub-table is discarded below, so just write a placeholder that + // fits in the 16-bit "idRangeOffset" field. + format4Overflow = true; + idRangeOffsets.skip(2); + } else { + idRangeOffsets.setInt16(offset); + } for (j = 0, jj = codes.length; j < jj; ++j) { glyphsIds.setInt16(codes[j]); @@ -661,15 +666,18 @@ function createCmapTable(glyphs, toUnicodeExtraMap, numGlyphs) { format314.setArray(idRangeOffsets.data); format314.setArray(glyphsIds.data); - let cmap31012 = null, - format31012 = null, - header31012 = null; - if (numTables > 1) { - cmap31012 = new DataBuilder({ exactLength: 8 }); - cmap31012.setArray([0x00, 0x03]); // platformID - cmap31012.setArray([0x00, 0x0a]); // encodingID - cmap31012.setInt32(4 + numTables * 8 + 4 + format314.length); // start of the table record + // The format 4 (3, 1) sub-table can only be used when it fits within its + // 16-bit "length"/"idRangeOffset" fields. A format 12 (3, 10) sub-table is + // required for characters outside the BMP, and also acts as a fallback when + // the format 4 one overflows (note that format 12 covers the whole mapping, + // so dropping the redundant format 4 sub-table is fine). + const useFormat4 = !format4Overflow && format314.length + 4 <= 0xffff; + const useFormat12 = hasNonBmp || !useFormat4; + const numTables = (useFormat4 ? 1 : 0) + (useFormat12 ? 1 : 0); + let format31012 = null, + header31012 = null; + if (useFormat12) { format31012 = new DataBuilder({}); for (const range of ranges) { let start = range[0]; @@ -698,22 +706,44 @@ function createCmapTable(glyphs, toUnicodeExtraMap, numGlyphs) { header31012.setInt32(format31012.length / 12); // nGroups } + // Header ("version" + "numTables") followed by one encoding record per + // sub-table; the sub-tables themselves are appended afterwards. + const headerLength = 4 + numTables * 8; + const format4Length = useFormat4 ? 4 + format314.length : 0; + + const cmap = new DataBuilder({ exactLength: headerLength }); + cmap.skip(2); // version, skip redundant "\x00\x00" + cmap.setInt16(numTables); // numTables + let tableOffset = headerLength; + if (useFormat4) { + cmap.setArray([0x00, 0x03]); // platformID + cmap.setArray([0x00, 0x01]); // encodingID + cmap.setInt32(tableOffset); // start of the (3, 1) sub-table + tableOffset += format4Length; + } + if (useFormat12) { + cmap.setArray([0x00, 0x03]); // platformID + cmap.setArray([0x00, 0x0a]); // encodingID + cmap.setInt32(tableOffset); // start of the (3, 10) sub-table + } + const table = new DataBuilder({ exactLength: - 4 + cmap.length + - (cmap31012?.length ?? 0) + - format314.length + + format4Length + (header31012?.length ?? 0) + (format31012?.length ?? 0), }); table.setArray(cmap.data); - table.setArray(cmap31012?.data ?? []); - table.setArray([0x00, 0x04]); // format - table.setInt16(format314.length + 4); // length - table.setArray(format314.data); - table.setArray(header31012?.data ?? []); - table.setArray(format31012?.data ?? []); + if (useFormat4) { + table.setArray([0x00, 0x04]); // format + table.setInt16(format314.length + 4); // length + table.setArray(format314.data); + } + if (useFormat12) { + table.setArray(header31012.data); + table.setArray(format31012.data); + } return table.data; } diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 406388bf6..1d9a61da6 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -927,3 +927,4 @@ !issue_cff_unsigned_bbox.pdf !90ms_rksj_h_sample.pdf !issue21346.pdf +!cidfont_cmap_overflow.pdf diff --git a/test/pdfs/cidfont_cmap_overflow.pdf b/test/pdfs/cidfont_cmap_overflow.pdf new file mode 100644 index 0000000000000000000000000000000000000000..329fd2738a832da958cb3c2d79017b2fa64d1fda GIT binary patch literal 94168 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