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 6379c57..783603c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,11 @@
 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:
        * src/fcfreetype.c:
index a392327..4f5b71d 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 8a42fdb..9872836 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);