diff options
author | Patrick Lam <plam@MIT.EDU> | 2006-02-09 16:19:42 +0000 |
---|---|---|
committer | Patrick Lam <plam@MIT.EDU> | 2006-02-09 16:19:42 +0000 |
commit | c7490074c57da387904cecfdf60595713c7bb89e (patch) | |
tree | c3cf0733e19a75d81783dd071c683212e486654f | |
parent | a8c425301aeb8e417b0fa35567b2f8f64b450657 (diff) |
Fix attempt to close -1. Don't unboundedly grow bad caches (reported by
fcrozat).
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | src/fccache.c | 8 |
2 files changed, 11 insertions, 3 deletions
@@ -1,4 +1,10 @@ 2006-02-09 Patrick Lam <plam@mit.edu> + * src/fccache.c (FcDirCacheValid, FcDirCacheWrite): + + Fix attempt to close -1. + Don't unboundedly grow bad caches (reported by fcrozat). + +2006-02-09 Patrick Lam <plam@mit.edu> * src/fccharset.c (FcCharSetNeededBytes, FcCharSetSerialize, FcCharSetGetLeaf): diff --git a/src/fccache.c b/src/fccache.c index 90d0894..69b08cb 100644 --- a/src/fccache.c +++ b/src/fccache.c @@ -726,7 +726,7 @@ FcDirCacheValid (const FcChar8 *dir) fd = FcDirCacheOpen (dir); if (fd < 0) - goto bail; + return FcFalse; if (fstat (fd, &file_stat) < 0) goto bail; @@ -1239,13 +1239,15 @@ FcDirCacheWrite (FcFontSet *set, FcStrSet *dirs, const FcChar8 *dir) if(!FcCacheReadString (fd, name_buf, sizeof (name_buf)) || !strlen(name_buf)) { close (fd); - break; + continue; } close (fd); if (strcmp (name_buf, cache_file) != 0) continue; - } while (0); + + break; + } while (1); current_dir_block = FcDirCacheProduce (set, &metadata); |