Fixup: Handle patterns without family

Pointed out by Akira Tagoh.
diff --git a/src/fcmatch.c b/src/fcmatch.c
index 16d03de..df6db71 100644
--- a/src/fcmatch.c
+++ b/src/fcmatch.c
@@ -525,25 +525,28 @@
                                free);
 
     elt = FcPatternObjectFindElt (pat, FC_FAMILY_OBJECT);
-    for (l = FcPatternEltValues(elt), i = 0; l; l = FcValueListNext(l), i++)
+    if (elt)
     {
-        key = FcValueString (&l->value);
-        if (!FcHashTableFind (table, key, (void **)&e))
+        for (l = FcPatternEltValues(elt), i = 0; l; l = FcValueListNext(l), i++)
         {
-            e = malloc (sizeof (FamilyEntry));
-            e->strong_value = 1e99;
-            e->weak_value = 1e99;
-            FcHashTableAdd (table, (void *)key, e);
-        }
-        if (l->binding == FcValueBindingWeak)
-        {
-            if (i < e->weak_value)
-                e->weak_value = i;
-        }
-        else
-        {
-            if (i < e->strong_value)
-                e->strong_value = i;
+            key = FcValueString (&l->value);
+            if (!FcHashTableFind (table, key, (void **)&e))
+            {
+                e = malloc (sizeof (FamilyEntry));
+                e->strong_value = 1e99;
+                e->weak_value = 1e99;
+                FcHashTableAdd (table, (void *)key, e);
+            }
+            if (l->binding == FcValueBindingWeak)
+            {
+                if (i < e->weak_value)
+                    e->weak_value = i;
+            }
+            else
+            {
+                if (i < e->strong_value)
+                    e->strong_value = i;
+            }
         }
     }