Don't crash in FcPatternFormat() with NULL pattern
authorBehdad Esfahbod <behdad@behdad.org>
Wed, 2 Jan 2013 02:20:31 +0000 (20:20 -0600)
committerBehdad Esfahbod <behdad@behdad.org>
Wed, 2 Jan 2013 02:20:31 +0000 (20:20 -0600)
src/fcformat.c

index a8a1ad1..59f8681 100644 (file)
@@ -1193,15 +1193,19 @@ FcPatternFormat (FcPattern *pat,
 {
     FcStrBuf        buf;
     FcChar8         buf_static[8192 - 1024];
+    FcPattern      *alloced = NULL;
     FcBool          ret;
 
     if (!pat)
-       return NULL;
+       alloced = pat = FcPatternCreate ();
 
     FcStrBufInit (&buf, buf_static, sizeof (buf_static));
 
     ret = FcPatternFormatToBuf (pat, format, &buf);
 
+    if (alloced)
+      FcPatternDestroy (alloced);
+
     if (ret)
        return FcStrBufDone (&buf);
     else