Must not insert cache into hash table before completely validating.
The cache was inserted into the hash table before the timestamps in the cache were verified; if that verification failed, an extra pointer to the now freed cache would be left in the hash table. FcFini would fail an assertion as a result.
This commit is contained in:
parent
e85789a997
commit
bc5e8adb4d
|
@ -493,8 +493,8 @@ FcDirCacheMapFd (int fd, struct stat *fd_stat, struct stat *dir_stat)
|
|||
if (cache->magic != FC_CACHE_MAGIC_MMAP ||
|
||||
cache->version < FC_CACHE_CONTENT_VERSION ||
|
||||
cache->size != fd_stat->st_size ||
|
||||
!FcCacheInsert (cache, fd_stat) ||
|
||||
!FcCacheTimeValid (cache, dir_stat))
|
||||
!FcCacheTimeValid (cache, dir_stat) ||
|
||||
!FcCacheInsert (cache, fd_stat))
|
||||
{
|
||||
if (allocated)
|
||||
free (cache);
|
||||
|
|
Loading…
Reference in New Issue