[Fontconfig] fontconfig: Branch 'main'
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Feb 16 06:45:43 UTC 2023
src/fcint.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
New commits:
commit 06929a556fdc39c8fe12965b69070c8df520a33e
Author: Tom Anderson <thomasanderson at chromium.org>
Date: Fri Feb 10 23:53:15 2023 +0000
Fix false-positive CFI failure
When building Chromium with upstream Fontconfig with CFI,
the following build error is raised:
../../third_party/fontconfig/src/src/fchash.c:105:21: runtime error:
control flow integrity check for type 'unsigned int (const void *)'
failed during indirect function call
This occurs because CFI doesn't like the conversion from
`unsigned int (const void *)` to `unsigned int (const char *)`.
To fix this, simply redefine `FcHashFunc` to use `char *` instead.
diff --git a/src/fcint.h b/src/fcint.h
index 78cee54..0c5f5e7 100644
--- a/src/fcint.h
+++ b/src/fcint.h
@@ -408,8 +408,8 @@ typedef struct _FcStrBuf {
typedef struct _FcHashTable FcHashTable;
-typedef FcChar32 (* FcHashFunc) (const void *data);
-typedef int (* FcCompareFunc) (const void *v1, const void *v2);
+typedef FcChar32 (* FcHashFunc) (const FcChar8 *data);
+typedef int (* FcCompareFunc) (const FcChar8 *v1, const FcChar8 *v2);
typedef FcBool (* FcCopyFunc) (const void *src, void **dest);
More information about the Fontconfig
mailing list