]> git.wh0rd.org - fontconfig.git/commitdiff
Fix small memory error (tried to free argv); use basename and dirname
authorPatrick Lam <plam@MIT.EDU>
Tue, 1 Nov 2005 05:52:28 +0000 (05:52 +0000)
committerPatrick Lam <plam@MIT.EDU>
Tue, 1 Nov 2005 05:52:28 +0000 (05:52 +0000)
    correctly (they can modify their arguments).

ChangeLog
fc-cat/fc-cat.c
src/fcfreetype.c

index 6379c571a6b79a940fffe664350e5312261bdbf1..783603c363a6ab37e4975ea23077e58b75fe8523 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2005-10-31  Patrick Lam  <plam@mit.edu>
+       * fc-cat/fc-cat.c (FcCacheFileRead, main):
+       * src/fcfreetype.c (FcFreeTypeQuery):
+
+       Fix small memory error (tried to free argv); use basename and
+       dirname correctly (they can modify their arguments).
+
 2005-10-31  Patrick Lam  <plam@mit.edu>
        * fc-cat/fc-cat.c:
        * src/fccache.c:
index a39232712d511017990700a2312f40d414783d2e..4f5b71d5e13a18b69fac7785d989b9040b8a1df8 100644 (file)
@@ -198,13 +198,11 @@ FcCacheFileRead (FcFontSet * set, FcStrSet *dirs, char * dir, char *cache_file)
        goto bail1;
        
     close(fd);
-    free (cache_file);
     return FcTrue;
 
  bail1:
     close (fd);
  bail:
-    free (cache_file);
     return FcFalse;
 }
 
@@ -327,7 +325,7 @@ main (int argc, char **argv)
     i = 1;
 #endif
 
-    if (FcCacheFileRead (fs, dirs, dirname (argv[i]), argv[i]))
+    if (FcCacheFileRead (fs, dirs, dirname (strdup(argv[i])), argv[i]))
        FcCachePrintSet (fs, dirs, argv[i]);
 
     FcStrSetDestroy (dirs);
index 8a42fdb1a139368e2cbd78b65120c7e8ad750c86..98728363837a34fffeed5f8c02c8f2f71fc981fd 100644 (file)
@@ -1288,7 +1288,7 @@ FcFreeTypeQuery (const FcChar8    *file,
                printf ("Saving unique fullname %s\n", full);
     }
 
-    if (!FcPatternAddString (pat, FC_FILE, (FcChar8 *)basename((char *)file)))
+    if (!FcPatternAddString (pat, FC_FILE, (FcChar8 *)basename((char *)FcStrCopy(file))))
        goto bail1;
 
     FcPatternAddFullFname (pat, (const char *)file);