Avoid memory leak when NULL path passed to FcStrBuildFilename
authorAlan Coopersmith <alan.coopersmith@oracle.com>
Sat, 2 Nov 2013 17:23:56 +0000 (10:23 -0700)
committerAkira TAGOH <akira@tagoh.org>
Tue, 5 Nov 2013 02:43:41 +0000 (11:43 +0900)
Reported by parfait 1.3:
   Memory leak of pointer sset allocated with FcStrSetCreate()
        at line 933 of src/fcstr.c in function 'FcStrBuildFilename'.
          sset allocated at line 927 with FcStrSetCreate().
          sset leaks when sset != NULL at line 932.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
src/fcstr.c

index 5707172..024dae3 100644 (file)
@@ -924,12 +924,16 @@ FcStrBuildFilename (const FcChar8 *path,
                    ...)
 {
     va_list ap;
-    FcStrSet *sset = FcStrSetCreate ();
+    FcStrSet *sset;
     FcStrList *list;
     FcChar8 *s, *ret = NULL, *p;
     size_t len = 0;
 
-    if (!sset || !path)
+    if (!path)
+       return NULL;
+
+    sset = FcStrSetCreate ();
+    if (!sset)
        return NULL;
 
     if (!FcStrSetAdd (sset, path))