From 04cedae0d5a720662bdc0de3d4cb97f6c77e7d1a Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 2 Sep 2006 20:23:31 -0700 Subject: [PATCH] Don't segfault when string values can't be parsed as charsets or langsets. If parsing charsets or langsets fails, return a FcTypeVoid value instead of a charset/langset value with a NULL pointer in it (which is invalid). --- src/fcname.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/fcname.c b/src/fcname.c index 6f74bb1..cfc6b31 100644 --- a/src/fcname.c +++ b/src/fcname.c @@ -567,6 +567,8 @@ FcNameConvert (FcType type, FcChar8 *string, FcMatrix *m) break; case FcTypeString: v.u.s = FcStrStaticName(string); + if (!v.u.s) + v.type = FcTypeVoid; break; case FcTypeBool: if (!FcNameBool (string, &v.u.b)) @@ -581,9 +583,13 @@ FcNameConvert (FcType type, FcChar8 *string, FcMatrix *m) break; case FcTypeCharSet: v.u.c = FcNameParseCharSet (string); + if (!v.u.c) + v.type = FcTypeVoid; break; case FcTypeLangSet: v.u.l = FcNameParseLangSet (string); + if (!v.u.l) + v.type = FcTypeVoid; break; default: break; -- 2.39.5