From 5c1853cd4c9bd511f0ae9f644a2a30025116987e Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 27 Apr 2005 16:22:46 +0000 Subject: [PATCH] Bump so revision for 2.3.2 Fix a few minor leaks in error cases. --- fc-cache/fc-cache.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/fc-cache/fc-cache.c b/fc-cache/fc-cache.c index 6fa0c5a..1e8fdf2 100644 --- a/fc-cache/fc-cache.c +++ b/fc-cache/fc-cache.c @@ -141,6 +141,7 @@ scanDirs (FcStrList *list, FcConfig *config, char *program, FcBool force, FcBool { fprintf (stderr, "Can't create directory set\n"); ret++; + FcFontSetDestroy (set); continue; } @@ -162,23 +163,31 @@ scanDirs (FcStrList *list, FcConfig *config, char *program, FcBool force, FcBool perror (""); ret++; } + FcFontSetDestroy (set); + FcStrSetDestroy (subdirs); continue; } if (stat ((char *) dir, &statb) == -1) { fprintf (stderr, "\"%s\": ", dir); perror (""); + FcFontSetDestroy (set); + FcStrSetDestroy (subdirs); ret++; continue; } if (!S_ISDIR (statb.st_mode)) { fprintf (stderr, "\"%s\": not a directory, skipping\n", dir); + FcFontSetDestroy (set); + FcStrSetDestroy (subdirs); continue; } if (!FcDirScan (set, subdirs, 0, FcConfigGetBlanks (config), dir, force)) { fprintf (stderr, "\"%s\": error scanning\n", dir); + FcFontSetDestroy (set); + FcStrSetDestroy (subdirs); ret++; continue; } @@ -201,6 +210,7 @@ scanDirs (FcStrList *list, FcConfig *config, char *program, FcBool force, FcBool } FcFontSetDestroy (set); sublist = FcStrListCreate (subdirs); + FcStrSetDestroy (subdirs); if (!sublist) { fprintf (stderr, "Can't create subdir list in \"%s\"\n", dir); @@ -208,7 +218,6 @@ scanDirs (FcStrList *list, FcConfig *config, char *program, FcBool force, FcBool continue; } ret += scanDirs (sublist, config, program, force, verbose); - FcStrSetDestroy (subdirs); } FcStrListDone (list); return ret;