]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
re-initialize a deleted staticly initialized mutex
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Sat, 30 Nov 2013 19:14:43 +0000 (20:14 +0100)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Sat, 30 Nov 2013 19:14:43 +0000 (20:14 +0100)
lib/locks.h

index 68d73e4ae9195e6b5593893aeeb59abef211b8bb..cf989c6f7802fe9e9f209364ac150cfaa193d116 100644 (file)
@@ -70,8 +70,11 @@ extern mutex_unlock_func gnutls_mutex_unlock;
 # define GNUTLS_STATIC_MUTEX_UNLOCK(mutex) \
        pthread_mutex_unlock(&mutex)
 
-# define GNUTLS_STATIC_MUTEX_DEINIT(mutex) \
-       pthread_mutex_destroy(&mutex)
+# define GNUTLS_STATIC_MUTEX_DEINIT(mutex) { \
+               static const pthread_mutex_t t = PTHREAD_MUTEX_INITIALIZER; \
+               pthread_mutex_destroy(&mutex); \
+               memcpy(&mutex, &t, sizeof(mutex)); \
+       }
 
 #else
 # define GNUTLS_STATIC_MUTEX(mutex)