CVE-2026-95311
Overview
Background
- `fontconfig`
- The third-party font-configuration library, vendored under
third_party/fontconfig, that Chrome uses on Linux to enumerate, match, and cache system fonts. - `FcCache`
- Fontconfig’s on-disk cache format that stores serialized font metadata (including
FcCharSetcharset data) in a memory-mapped file region for fast reuse across processes. - Free of non-heap memory
- Calling
free()(or an equivalent deallocation) on a pointer that was not obtained from the heap allocator, such as a pointer into a memory-mapped cache buffer, which corrupts allocator state or crashes. - `FcCharSet`
- The fontconfig object describing the set of Unicode code points a font covers, whose internal arrays are among the cache-resident structures that must be validated before use.
Root Cause Analysis
Chrome loads fontconfig cache files (FcCache) from local, memory-mapped storage and deserializes structures such as FcCharSet charset data directly out of the mapped region. In the vulnerable version (2.18.1), the charset/cache validation logic loading these local cache files failed to fully validate offsets and structure provenance, so a deserialized pointer that actually referenced non-heap (mmap-backed or otherwise non-allocator) memory could later be passed to a free path. This violated the invariant that only heap-allocated pointers are handed to free(), producing the “Free of non-heap memory” condition.
The fix is the roll of third_party/fontconfig/src from b707078e6 to d17ee184e, which pulls in the upstream commit “Fix arbitrary free in cache validation” (and the related charset validation hardening) so that cache-resident pointers are validated and not incorrectly freed. Because this is a vendored-dependency roll, the change lands as an updated src submodule pin plus regenerated generated headers rather than as edits to Chrome’s own C++ functions.
Attack Path
- Deliver a crafted cache An attacker arranges for a malicious or corrupted fontconfig cache file to be present where Chrome’s fontconfig will load it, since the advisory frames the issue as occurring “when loading local cache files.” (inferred)
- Trigger cache load
Font enumeration or matching in Chrome causes fontconfig to memory-map and deserialize the cache, reading
FcCharSet/charset structures whose offsets are not fully validated in the vulnerable version. - Produce a non-heap pointer Insufficient charset/cache validation yields a pointer that references non-heap (mmap-backed) memory but is treated as an owned allocation.
- Free of non-heap memory
A subsequent cleanup or destroy path calls
free()on that pointer, causing the free-of-non-heap-memory fault and consequent allocator corruption or crash. - Escalation to memory corruption primitive Corrupting allocator metadata via the invalid free could be leveraged toward a more powerful memory-corruption primitive, though the patch itself (a dependency roll) does not demonstrate a specific sink. (inferred)
Impact Assessment
Files Changed
third_party/fontconfig/include/fcalias.hthird_party/fontconfig/include/fontconfig/fontconfig.hthird_party/fontconfig/README.chromiumthird_party/fontconfig/update.shthird_party/fontconfig/include/fc-lang/fclang.hDEPSthird_party/fontconfig/include/fcaliastail.hthird_party/fontconfig/srcthird_party/fontconfig/include/fc-genericfamily/fcgenericfamily.hthird_party/fontconfig/include/meson-config.h
Audit Directions
- Deserialization of memory-mapped cachesAudit every path that reads pointers, offsets, or lengths out of
FcCache/mmap-backed files and later frees or writes through them, ensuring provenance is validated before deallocation. - Free of non-owned pointersSearch fontconfig and other vendored libraries for
free()/destroy calls on pointers that may originate from mapped or static memory rather than the heap allocator. - Vendored dependency freshnessTrack upstream
third_party/fontconfigsecurity commits and roll promptly, since Chrome inherits logic bugs like this arbitrary free directly from the pinnedsrcrevision.
Patch
From 1eb1ce1c13b0ff7034d2d3db1214b8174c9e8ac5 Mon Sep 17 00:00:00 2001 From: Dominik Röttsches <[email protected]> Date: Fri, 04 Sep 2026 06:03:31 -0700 Subject: [PATCH] [M154] Roll src/third_party/fontconfig/src/ b707078e6..d17ee184e (67 commits) Original change's description: > Roll src/third_party/fontconfig/src/ b707078e6..d17ee184e (67 commits) > > Addresses charset validation issue when loading local cache files. > Updates genericfamily.h with new values from upstream. > > https://chromium.googlesource.com/external/fontconfig.git/+log/b707078e6e8b..d17ee184e436 > > $ git log b707078e6..d17ee184e --date=short --no-merges --format='%ad %ae %s' > 2026-09-03 akira Add 'since' attribute to skip config rules by fontconfig version > 2026-09-02 drott Fix arbitrary free in cache validation > 2026-09-02 akira Fix uninitialized read from GNU stderror_r variant > 2026-08-27 akira Drop autotools build support > 2026-08-25 akira ci: workaround the hangup and warning on MSYS2 > 2026-08-25 akira Fix data race on lazy-init statics in FcCacheIsNewVersion > 2026-08-24 akira ci: Add the thread sanitizer job > 2026-08-24 akira Add multithreaded cache stress test and pattern-access benchmark > 2026-08-23 heftig Remove extra Segoe UI fonts from system-ui > 2026-08-21 akira Add tests for application fonts query and reinitialization > 2026-08-21 akira Preserve application fonts across reinitialization > 2026-08-21 akira Add FcConfigGetAppFonts() to query application fonts > 2026-08-21 akira Guard against mixing plain strings and triples in an FcStrSet > 2026-08-21 akira Refactor FcConfigCreate/Destroy() > 2026-08-16 jeremyhu Do not strip a current directory prefix off an absolute glob > 2026-08-16 jeremyhu Do not dereference a NULL glob string > 2026-08-10 akira ci: Add linter for changelog trailer > 2026-08-08 bgilbert meson: override fontconfig dependency for parent project > 2026-08-10 akira Fix "Build target preprocessor_0 has no sources" warning > 2026-08-07 akira Fix Y2038 overflow in cache mtime by using pad2 as upper 32 bits > 2026-08-06 akira Bump version to 2.18.3 > 2026-08-05 akira Update INSTALL > 2026-07-31 akira Fix the compiler warnings on MinGW > 2026-07-31 akira ci: Bump FreeBSD version to 14.4 > 2026-07-31 akira Fix another compiler warnings > 2026-07-31 akira fc-fontations: Allow unnecessary_transmutes lint in bindgen-generated Rust code > 2026-07-31 akira test: Fix compiler warnings > 2026-07-31 akira ci: Update base ci-templates > 2026-07-31 akira ci: reduce more duplicate jobs > 2026-07-31 akira ci: gate distro jobs until all tests passed > 2026-07-31 akira ci: cleanup > 2026-07-31 akira ci: drop duplicate pipelines > 2026-07-31 akira ci: Enable -Werror in CI > 2026-07-31 akira test: Fix test_genconf.py to avoid unexpected family name in testing conf > 2026-07-30 akira Allow to limit the targeted family for TTC > 2026-07-30 akira fc-genconf: Use alias syntactic-sugar instead of the pair of test-edit config > 2026-07-23 akira Add implicit rule to update genericfamily property against syntactic-sugar > 2026-07-29 akira ci: Update dependencies > 2026-07-29 akira fc-cache: Create backward-compatible cache symlinks for cross-version discovery > 2026-07-28 akira Add orth files for ancient scripts (xna, hlu, ecy) > 2026-07-27 akira test: Add cache format compatibility tests for orth file additions > 2026-07-25 akira ci: Suppress abidiff false positives for all internal structs > 2026-07-24 akira Add orth files for Cuneiform languages (akk, sux, hit) > 2026-07-24 akira Update mni.orth to use Meetei Mayek script > 2026-07-24 akira Add orth files for scripts used by Noto font families > 2026-07-24 akira Update orth files for jv, so, su, tl to use native scripts > 2026-07-24 akira Add an orth file for Balinese > 2026-07-24 akira Correct sat.orth > 2026-07-22 serval2412 Fix unknown type name locale_t on macOS > 2026-07-19 serval2412 Fix "FileType is deprecated" > 2026-07-16 akira Drop Noto Sans CJK KR from 60-nonlatin.conf > 2026-07-16 akira Add Noto Sans as system-ui for fallback > 2026-07-14 akira Fix a null pointer dereference > 2026-07-14 akira Workaround a longstanding use-after-free warning > 2026-07-14 akira fc-cat: exit with non-zero if not successfully done > 2026-07-14 akira ci: Add --werror option to the build script > 2026-07-09 akira Bump version to 2.18.2 > 2026-07-09 akira new-version.sh: fix an error > 2026-07-07 emilio Fix FcNameUnparse regression. > 2026-07-06 akira Use Special FC_CACHE_VERSION for snapshot > 2026-07-02 akira fc-genericfamily: Add major missing fonts across multiple categories > 2026-07-02 akira Do not ship unnecessary files in archive > 2026-07-01 akira Add more conditional code for FcLocaleSetCurrent() > 2026-07-02 akira conf.d/Makefile.am: install 05-macos.conf for macOS only > 2026-06-30 akira fc-cache: do not generate cache when target directory is in deny list > 2026-06-30 akira fc-genericfamily: Add Noto fonts > 2026-06-30 akira doc: Fallback to wkhtmltopdf if no docbook2pdf available > > Created with update.sh in third_party/fontconfig. > > Fixed: 553123003 > Change-Id: Ib4fa0fad9a79369a7abfa0908d1fcc23d8b8e2ba > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8352703 > Reviewed-by: Thomas Anderson <[email protected]> > Commit-Queue: Koji Ishii <[email protected]> > Commit-Queue: Dominik Röttsches <[email protected]> > Commit-Queue: Thomas Anderson <[email protected]> > Reviewed-by: Koji Ishii <[email protected]> > Auto-Submit: Dominik Röttsches <[email protected]> > Cr-Commit-Position: refs/heads/main@{#1691760} (cherry picked from commit 09fc04e0511c6ac4abe581d6794f9e7891b0cad8) Bug: 557050400,553123003 Change-Id: Ib4fa0fad9a79369a7abfa0908d1fcc23d8b8e2ba Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8355367 Bot-Commit: [email protected] <[email protected]> Auto-Submit: chrome-cherry-picker@chops-service-accounts.iam.gserviceaccount.com <chrome-cherry-picker@chops-service-accounts.iam.gserviceaccount.com> Commit-Queue: [email protected] <[email protected]> Commit-Queue: Dominik Röttsches <[email protected]> Cr-Commit-Position: refs/branch-heads/8037@{#213} Cr-Branched-From: e10b20e60f162e7ad88e4930833695a54f4e15fb-refs/heads/main@{#1689415} --- diff --git a/third_party/fontconfig/README.chromium b/third_party/fontconfig/README.chromium index 54ced65..4c549ba 100644 --- a/third_party/fontconfig/README.chromium +++ b/third_party/fontconfig/README.chromium @@ -1,9 +1,9 @@ Name: fontconfig URL: http://www.freedesktop.org/wiki/Software/fontconfig/ -Version: 2.18.1 -Revision: b707078e6e8bb6fd115e2080e69b3194c05e4f1c +Version: 2.18.3 +Revision: d17ee184e436712c2abbe14a9c0ec02fb6acf5c5 Update Mechanism: Manual -CPEPrefix: cpe:/a:fontconfig_project:fontconfig:2.18.1 +CPEPrefix: cpe:/a:fontconfig_project:fontconfig:2.18.3 License: HPND-sell-variant, MIT, MIT-Modern-Variant, Public-Domain-MD5, Public-Domain-ftglue, Unicode-TOU License File: src/COPYING Security Critical: yes diff --git a/third_party/fontconfig/include/fc-genericfamily/fcgenericfamily.h b/third_party/fontconfig/include/fc-genericfamily/fcgenericfamily.h index 0fab1735..1d05260 100644 --- a/third_party/fontconfig/include/fc-genericfamily/fcgenericfamily.h +++ b/third_party/fontconfig/include/fc-genericfamily/fcgenericfamily.h @@ -1,6 +1,6 @@ /* ANSI-C code produced by gperf version 3.3 */ /* Command-line: gperf --pic -m 100 --output-file fc-genericfamily/fcgenericfamily.h fc-genericfamily/fcgenericfamily.gperf */ -/* Computed positions: -k'1-2,4-5,8,10,12,14-17,20,$' */ +/* Computed positions: -k'1,3-5,8,10-18,20,$' */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ @@ -42,12 +42,12 @@ struct FcGenericFamilyEntry; #include <string.h> -#define TOTAL_KEYWORDS 873 +#define TOTAL_KEYWORDS 1218 #define MIN_WORD_LENGTH 2 -#define MAX_WORD_LENGTH 31 -#define MIN_HASH_VALUE 40 -#define MAX_HASH_VALUE 5938 -/* maximum key range = 5899, duplicates = 0 */ +#define MAX_WORD_LENGTH 34 +#define MIN_HASH_VALUE 93 +#define MAX_HASH_VALUE 12005 +/* maximum key range = 11913, duplicates = 0 */ #ifndef GPERF_DOWNCASE #define GPERF_DOWNCASE 1 @@ -102,32 +102,32 @@ { static const unsigned short asso_values[] = { - 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, - 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, - 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, - 5939, 5939, 185, 1235, 5939, 5939, 5939, 5939, 5939, 5939, - 12, 12, 5939, 39, 5939, 38, 5939, 5939, 11, 14, - 13, 18, 47, 35, 11, 5939, 11, 12, 5939, 5939, - 5939, 5939, 5939, 5939, 5939, 11, 1140, 403, 99, 28, - 156, 146, 583, 12, 1406, 1075, 25, 19, 12, 14, - 530, 14, 94, 80, 41, 13, 1709, 433, 71, 987, - 398, 11, 5939, 5939, 5939, 11, 11, 11, 1140, 403, - 99, 28, 156, 146, 583, 12, 1406, 1075, 25, 19, - 12, 14, 530, 14, 94, 80, 41, 13, 1709, 433, - 71, 987, 398, 11, 5939, 5939, 5939, 5939, 5939, 5939, - 11, 12, 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, - 5939, 5939, 11, 5939, 5939, 5939, 5939, 5939, 5939, 5939, - 5939, 5939, 5939, 5939, 5939, 5939, 11, 11, 5939, 5939, - 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, 11, 12, - 5939, 5939, 5939, 5939, 5939, 11, 5939, 5939, 5939, 5939, - 11, 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, 11, - 11, 5939, 5939, 5939, 5939, 11, 5939, 5939, 5939, 5939, - 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, - 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, - 5939, 5939, 5939, 5939, 5939, 5939, 5939, 11, 5939, 5939, - 11, 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, 11, - 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, - 5939, 5939, 5939, 5939, 5939, 5939, 5939 + 12006, 12006, 12006, 12006, 12006, 12006, 12006, 12006, 12006, 12006, + 12006, 12006, 12006, 12006, 12006, 12006, 12006, 12006, 12006, 12006, + 12006, 12006, 12006, 12006, 12006, 12006, 12006, 12006, 12006, 12006, + 12006, 12006, 25, 12006, 12006, 12006, 12006, 12006, 12006, 12006, + 18, 18, 12006, 12006, 12006, 18, 12006, 18, 30, 19, + 32, 19, 23, 25, 12006, 22, 20, 19, 12006, 12006, + 12006, 12006, 12006, 12006, 12006, 20, 2827, 129, 264, 43, + 1384, 353, 788, 18, 1347, 733, 249, 26, 18, 23, + 2269, 22, 20, 31, 53, 776, 3005, 2024, 2042, 1815, + 200, 12006, 12006, 12006, 12006, 18, 12006, 20, 2827, 129, + 264, 43, 1384, 353, 788, 18, 1347, 733, 249, 26, + 18, 23, 2269, 22, 20, 31, 53, 776, 3005, 2024, + 2042, 1815, 200, 12006, 12006, 12006, 12006, 12006, 12006, 12006, + 18, 18, 12006, 12006, 12006, 12006, 12006, 12006, 12006, 12006, + 12006, 19, 19, 12006, 12006, 12006, 12006, 12006, 12006, 12006, + 12006, 12006, 12006, 12006, 12006, 12006, 19, 19, 12006, 12006, + 12006, 12006, 12006, 12006, 12006, 12006, 12006, 12006, 18, 12006, + 12006, 12006, 12006, 12006, 12006, 18, 12006, 12006, 12006, 12006, + 18, 12006, 12006, 18, 12006, 12006, 12006, 12006, 12006, 18, + 12006, 12006, 12006, 12006, 12006, 19, 12006, 12006, 12006, 12006, + 12006, 12006, 12006, 12006, 12006, 12006, 12006, 12006, 12006, 12006, + 12006, 12006, 12006, 12006, 12006, 12006, 12006, 12006, 12006, 12006, + 12006, 12006, 12006, 12006, 12006, 12006, 12006, 18, 12006, 12006, + 18, 12006, 12006, 12006, 12006, 12006, 12006, 12006, 12006, 18, + 12006, 12006, 12006, 12006, 12006, 12006, 12006, 12006, 12006, 12006, + 12006, 12006, 12006, 12006, 12006, 12006 }; register unsigned int hval = len; @@ -143,6 +143,13 @@ /*FALLTHROUGH*/ case 19: case 18: + hval += asso_values[(unsigned char)str[17]]; +#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9))) + [[fallthrough]]; +#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10) + __attribute__ ((__fallthrough__)); +#endif + /*FALLTHROUGH*/ case 17: hval += asso_values[(unsigned char)str[16]]; #if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9))) @@ -176,6 +183,13 @@ #endif /*FALLTHROUGH*/ case 13: + hval += asso_values[(unsigned char)str[12]]; +#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9))) + [[fallthrough]]; +#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10) + __attribute__ ((__fallthrough__)); +#endif + /*FALLTHROUGH*/ case 12: hval += asso_values[(unsigned char)str[11]]; #if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9))) @@ -185,6 +199,13 @@ #endif /*FALLTHROUGH*/ case 11: + hval += asso_values[(unsigned char)str[10]]; +#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9))) + [[fallthrough]]; +#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10) + __attribute__ ((__fallthrough__)); +#endif + /*FALLTHROUGH*/ case 10: hval += asso_values[(unsigned char)str[9]]; #if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9))) @@ -205,7 +226,7 @@ case 7: case 6: case 5: - hval += asso_values[(unsigned char)str[4]+1]; + hval += asso_values[(unsigned char)str[4]]; #if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9))) [[fallthrough]]; #elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10) @@ -221,14 +242,14 @@ #endif /*FALLTHROUGH*/ case 3: - case 2: - hval += asso_values[(unsigned char)str[1]]; + hval += asso_values[(unsigned char)str[2]]; #if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9))) [[fallthrough]]; #elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10) __attribute__ ((__fallthrough__)); #endif /*FALLTHROUGH*/ + case 2: case 1: hval += asso_values[(unsigned char)str[0]]; break; @@ -238,1755 +259,2445 @@ struct FcConstFamilyNamePool_t { - char FcConstFamilyNamePool_str40[sizeof("nu")]; - char FcConstFamilyNamePool_str53[sizeof("aqui")]; - char FcConstFamilyNamePool_str60[sizeof("muli")]; - char FcConstFamilyNamePool_str64[sizeof("untaza")]; - char FcConstFamilyNamePool_str65[sizeof("loma")]; - char FcConstFamilyNamePool_str68[sizeof("lato")]; - char FcConstFamilyNamePool_str70[sizeof("nunito")]; - char FcConstFamilyNamePool_str71[sizeof("nasim")]; - char FcConstFamilyNamePool_str72[sizeof("madan")]; - char FcConstFamilyNamePool_str73[sizeof("navilu")]; - char FcConstFamilyNamePool_str74[sizeof("madan2")]; - char FcConstFamilyNamePool_str75[sizeof("unbom")]; - char FcConstFamilyNamePool_str77[sizeof("andika")]; - char FcConstFamilyNamePool_str78[sizeof("undotum")]; - char FcConstFamilyNamePool_str79[sizeof("tiza")]; - char FcConstFamilyNamePool_str81[sizeof("unvada")]; - char FcConstFamilyNamePool_str84[sizeof("unpen")]; - char FcConstFamilyNamePool_str85[sizeof("undinaru")]; - char FcConstFamilyNamePool_str86[sizeof("unpilgia")]; - char FcConstFamilyNamePool_str88[sizeof("uniol")]; - char FcConstFamilyNamePool_str93[sizeof("mononoki")]; - char FcConstFamilyNamePool_str94[sizeof("unjamosora")]; - char FcConstFamilyNamePool_str95[sizeof("tahoma")]; - char FcConstFamilyNamePool_str96[sizeof("norasi")]; - char FcConstFamilyNamePool_str97[sizeof("lime")]; - char FcConstFamilyNamePool_str98[sizeof("alkalami")]; - char FcConstFamilyNamePool_str100[sizeof("elham")]; - char FcConstFamilyNamePool_str101[sizeof("\357\275\215\357\275\223 \346\230\216\346\234\235")]; - char FcConstFamilyNamePool_str102[sizeof("m+ 1mn")]; - char FcConstFamilyNamePool_str103[sizeof("ungungseo")]; - char FcConstFamilyNamePool_str105[sizeof("unjamodotum")]; - char FcConstFamilyNamePool_str106[sizeof("molot")]; - char FcConstFamilyNamePool_str107[sizeof("m+ 2m")]; - char FcConstFamilyNamePool_str108[sizeof("m+ 1m")]; - char FcConstFamilyNamePool_str109[sizeof("andale mono")]; - char FcConstFamilyNamePool_str117[sizeof("asea")]; - char FcConstFamilyNamePool_str118[sizeof("sina")]; - char FcConstFamilyNamePool_str122[sizeof("unpenheulim")]; - char FcConstFamilyNamePool_str123[sizeof("lohit tamil")]; - char FcConstFamilyNamePool_str124[sizeof("unyetgul")]; - char FcConstFamilyNamePool_str125[sizeof("titillium")]; - char FcConstFamilyNamePool_str126[sizeof("unjamonovel")]; - char FcConstFamilyNamePool_str134[sizeof("roya")]; - char FcConstFamilyNamePool_str137[sizeof("lohit gujarati")]; - char FcConstFamilyNamePool_str139[sizeof("lohit nepali")]; - char FcConstFamilyNamePool_str140[sizeof("inconsolata")]; - char FcConstFamilyNamePool_str143[sizeof("lohit telugu")]; - char FcConstFamilyNamePool_str148[sizeof("aroania")]; - char FcConstFamilyNamePool_str150[sizeof("tabassom")]; - char FcConstFamilyNamePool_str153[sizeof("\357\275\215\357\275\223 \343\202\264\343\202\267\343\203\203\343\202\257")]; - char FcConstFamilyNamePool_str155[sizeof("roboto")]; - char FcConstFamilyNamePool_str160[sizeof("musica")]; - char FcConstFamilyNamePool_str161[sizeof("lohit malayalam")]; - char FcConstFamilyNamePool_str164[sizeof("albany amt")]; - char FcConstFamilyNamePool_str165[sizeof("arial")]; - char FcConstFamilyNamePool_str166[sizeof("lohit maithili")]; - char FcConstFamilyNamePool_str170[sizeof("edwin")]; - char FcConstFamilyNamePool_str171[sizeof("nsimsun")]; - char FcConstFamilyNamePool_str172[sizeof("smoothansi")]; - char FcConstFamilyNamePool_str175[sizeof("literata")]; - char FcConstFamilyNamePool_str180[sizeof("d-din")]; - char FcConstFamilyNamePool_str183[sizeof("leland")]; - char FcConstFamilyNamePool_str188[sizeof("impact")]; - char FcConstFamilyNamePool_str190[sizeof("gohu")]; - char FcConstFamilyNamePool_str191[sizeof("roboto mono")]; - char FcConstFamilyNamePool_str193[sizeof("tinos")]; - char FcConstFamilyNamePool_str195[sizeof("lohit odia")]; - char FcConstFamilyNamePool_str198[sizeof("lohit hindi")]; - char FcConstFamilyNamePool_str203[sizeof("david clm")]; - char FcConstFamilyNamePool_str207[sizeof("times")]; - char FcConstFamilyNamePool_str210[sizeof("lohit kannada")]; - char FcConstFamilyNamePool_str211[sizeof("lohit sindhi")]; - char FcConstFamilyNamePool_str215[sizeof("garuda")]; - char FcConstFamilyNamePool_str216[sizeof("mingliu")]; - char FcConstFamilyNamePool_str223[sizeof("agbalumo")]; - char FcConstFamilyNamePool_str229[sizeof("oswald")]; - char FcConstFamilyNamePool_str231[sizeof("inter")]; - char FcConstFamilyNamePool_str234[sizeof("analecta")]; - char FcConstFamilyNamePool_str236[sizeof("mingzat")]; - char FcConstFamilyNamePool_str238[sizeof("irannastaliq")]; - char FcConstFamilyNamePool_str242[sizeof("leland text")]; - char FcConstFamilyNamePool_str243[sizeof("liberation mono")]; - char FcConstFamilyNamePool_str245[sizeof("titr")]; - char FcConstFamilyNamePool_str253[sizeof("lohit assamese")]; - char FcConstFamilyNamePool_str258[sizeof("aurulentsansmono")]; - char FcConstFamilyNamePool_str259[sizeof("lohit devanagari")]; - char FcConstFamilyNamePool_str260[sizeof("tlwgmono")]; - char FcConstFamilyNamePool_str261[sizeof("tlwgtypo")]; - char FcConstFamilyNamePool_str267[sizeof("stix")]; - char FcConstFamilyNamePool_str274[sizeof("infofont")]; - char FcConstFamilyNamePool_str281[sizeof("edges")]; - char FcConstFamilyNamePool_str284[sizeof("latin modern roman")]; - char FcConstFamilyNamePool_str288[sizeof("lohit bengali")]; - char FcConstFamilyNamePool_str291[sizeof("inconsolatago")]; - char FcConstFamilyNamePool_str292[sizeof("alegreya")]; - char FcConstFamilyNamePool_str294[sizeof("monofur")]; - char FcConstFamilyNamePool_str295[sizeof("annapurna sil")]; - char FcConstFamilyNamePool_str301[sizeof("montserrat")]; - char FcConstFamilyNamePool_str303[sizeof("anorexia")]; - char FcConstFamilyNamePool_str305[sizeof("sniglet")]; - char FcConstFamilyNamePool_str310[sizeof("segoe ui")]; - char FcConstFamilyNamePool_str313[sizeof("geist")]; - char FcConstFamilyNamePool_str319[sizeof("geist mono")]; - char FcConstFamilyNamePool_str320[sizeof("exo 2")]; - char FcConstFamilyNamePool_str324[sizeof("intel one mono")]; - char FcConstFamilyNamePool_str326[sizeof("freemono")]; - char FcConstFamilyNamePool_str327[sizeof("libertinus")]; - char FcConstFamilyNamePool_str328[sizeof("fixed")]; - char FcConstFamilyNamePool_str329[sizeof("tlwgtypist")]; - char FcConstFamilyNamePool_str333[sizeof("mints mild")]; - char FcConstFamilyNamePool_str340[sizeof("signfont")]; - char FcConstFamilyNamePool_str341[sizeof("arundina sans")]; - char FcConstFamilyNamePool_str342[sizeof("anka/coder")]; - char FcConstFamilyNamePool_str345[sizeof("inconsolata go")]; - char FcConstFamilyNamePool_str349[sizeof("unbatang")]; ... (file diff truncated)