fontconfig: Branch 'main'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 src/fccache.c |    1 +
 1 file changed, 1 insertion(+)

New commits:
commit efc71a3c132be05461ffc872e70390d61f27bc7e
Author: Ben Wagner <bungeman@xxxxxxxxxxxx>
Date:   Tue Aug 31 12:47:48 2021 -0400

    Free local FcCache lock on contention
    
    If two threads attempt to create the FcCache lock in lock_cache at the
    same time, both threads may create and initialize a local FcMutex. One
    thread will atomically make cache_lock point to its FcMutex. The other
    thread currently calls FcMutexFinish on the local lock, but does not
    free it. Change this behavior to free the unused lock.
    
    Found with test/test-pthread on an LeakSanitizer enabled build.

diff --git a/src/fccache.c b/src/fccache.c
index d8ffe09..4a6a752 100644
--- a/src/fccache.c
+++ b/src/fccache.c
@@ -495,6 +495,7 @@ retry:
     FcMutexInit (lock);
     if (!fc_atomic_ptr_cmpexch (&cache_lock, NULL, lock)) {
       FcMutexFinish (lock);
+      free (lock);
       goto retry;
     }
 



[Index of Archives]     [Fedora Fonts]     [Fedora Users]     [Fedora Cloud]     [Kernel]     [Fedora Packaging]     [Fedora Desktop]     [PAM]     [Gimp Graphics Editor]     [Yosemite News]

  Powered by Linux