summaryrefslogtreecommitdiff
path: root/libs/fontconfig/null-pointer-dereference-when-computing-a-patt.patch
diff options
context:
space:
mode:
authorrawnix ports <ports@rawnix.org>2026-09-26 18:19:05 +0000
committerrawnix ports <ports@rawnix.org>2026-09-26 18:19:05 +0000
commitc82e88dd00d1b0b7fcfb4e5628d99611388cef6f (patch)
tree56d864b5a5c6c145edd96178ae219a8f90e191a6 /libs/fontconfig/null-pointer-dereference-when-computing-a-patt.patch
downloadports-c82e88dd00d1b0b7fcfb4e5628d99611388cef6f.tar.gz
sync 2026-09-26 18:19 UTC
1672 files changed, 151396 insertions(+)
Diffstat (limited to 'libs/fontconfig/null-pointer-dereference-when-computing-a-patt.patch')
-rw-r--r--libs/fontconfig/null-pointer-dereference-when-computing-a-patt.patch65
1 files changed, 65 insertions, 0 deletions
diff --git a/libs/fontconfig/null-pointer-dereference-when-computing-a-patt.patch b/libs/fontconfig/null-pointer-dereference-when-computing-a-patt.patch
new file mode 100644
index 0000000..572582c
--- /dev/null
+++ b/libs/fontconfig/null-pointer-dereference-when-computing-a-patt.patch
@@ -0,0 +1,65 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Marcus Spencer <marcus@marcusspencer.us>
+Date: Fri, 22 May 2026 01:28:46 -0500
+Subject: [PATCH] Fix a null pointer dereference when computing a pattern from
+ a FreeType face that has no family name
+
+Changelog: fixed
+---
+ src/fcfreetype.c | 39 +++++++++++++++++++++------------------
+ 1 file changed, 21 insertions(+), 18 deletions(-)
+
+diff --git a/src/fcfreetype.c b/src/fcfreetype.c
+index c57f9b33acac..05c2e8a00471 100644
+--- a/src/fcfreetype.c
++++ b/src/fcfreetype.c
+@@ -2080,28 +2080,31 @@ FcFreeTypeQueryFaceInternal (const FT_Face face,
+ int generic_family = FC_FAMILY_UNKNOWN;
+
+ elt = FcPatternObjectFindElt (pat, FC_FAMILY_OBJECT);
+- for (l = FcPatternEltValues (elt); l; l = FcValueListNext (l)) {
+- FcValue v = FcValueCanonicalize (&l->value);
++ if (elt) {
++ for (l = FcPatternEltValues (elt); l; l = FcValueListNext (l)) {
++ FcValue v = FcValueCanonicalize (&l->value);
+
+- if (v.type == FcTypeString) {
+- if (FcStrStrIgnoreCase (v.u.s, (FcChar8 *)"mono")) {
+- generic_family = FC_FAMILY_MONO;
+- break;
+- } else if (FcStrStrIgnoreCase (v.u.s, (FcChar8 *)"sans")) {
+- generic_family = FC_FAMILY_SANS;
+- break;
+- } else if (FcStrStrIgnoreCase (v.u.s, (FcChar8 *)"serif")) {
+- generic_family = FC_FAMILY_SERIF;
+- break;
+- } else if (FcStrStrIgnoreCase (v.u.s, (FcChar8 *)"emoji")) {
+- generic_family = FC_FAMILY_EMOJI;
+- break;
+- } else if (FcStrStrIgnoreCase (v.u.s, (FcChar8 *)"math")) {
+- generic_family = FC_FAMILY_MATH;
+- break;
++ if (v.type == FcTypeString) {
++ if (FcStrStrIgnoreCase (v.u.s, (FcChar8 *)"mono")) {
++ generic_family = FC_FAMILY_MONO;
++ break;
++ } else if (FcStrStrIgnoreCase (v.u.s, (FcChar8 *)"sans")) {
++ generic_family = FC_FAMILY_SANS;
++ break;
++ } else if (FcStrStrIgnoreCase (v.u.s, (FcChar8 *)"serif")) {
++ generic_family = FC_FAMILY_SERIF;
++ break;
++ } else if (FcStrStrIgnoreCase (v.u.s, (FcChar8 *)"emoji")) {
++ generic_family = FC_FAMILY_EMOJI;
++ break;
++ } else if (FcStrStrIgnoreCase (v.u.s, (FcChar8 *)"math")) {
++ generic_family = FC_FAMILY_MATH;
++ break;
++ }
+ }
+ }
+ }
++
+ FcPatternObjectAddInteger(pat, FC_GENERIC_FAMILY_OBJECT, generic_family);
+ }
+