]> git.wh0rd.org - fontconfig.git/commitdiff
Don't segfault when string values can't be parsed as charsets or langsets.
authorKeith Packard <keithp@neko.keithp.com>
Sun, 3 Sep 2006 03:23:31 +0000 (20:23 -0700)
committerKeith Packard <keithp@neko.keithp.com>
Sun, 3 Sep 2006 03:23:31 +0000 (20:23 -0700)
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

index 6f74bb14f6beea23fbbbd3a4ecd35123ef98a3d7..cfc6b31977f46eae0751d7ba894102d1f94def52 100644 (file)
@@ -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;