From: Nikos Mavrogiannopoulos Date: Wed, 4 Dec 2013 08:49:26 +0000 (+0100) Subject: do not deinitialize a static mutex to avoid any side-effects. X-Git-Tag: gnutls_3_3_0pre0~505 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4d5db2069f8cead0abec31a5e36e709dd8b60abf;p=thirdparty%2Fgnutls.git do not deinitialize a static mutex to avoid any side-effects. --- diff --git a/lib/gnutls_global.c b/lib/gnutls_global.c index 4e8043efa3..e499990cf9 100644 --- a/lib/gnutls_global.c +++ b/lib/gnutls_global.c @@ -383,7 +383,6 @@ void gnutls_global_deinit(void) GNUTLS_STATIC_MUTEX_LOCK(global_init_mutex); if (_gnutls_init == 1) { _gnutls_init = 0; - GNUTLS_STATIC_MUTEX_UNLOCK(global_init_mutex); gl_sockets_cleanup(); gnutls_crypto_deinit(); _gnutls_rnd_deinit(); @@ -404,12 +403,11 @@ void gnutls_global_deinit(void) gnutls_mutex_deinit(&_gnutls_file_mutex); loaded_modules = 0; - GNUTLS_STATIC_MUTEX_DEINIT(global_init_mutex); } else { if (_gnutls_init > 0) _gnutls_init--; - GNUTLS_STATIC_MUTEX_UNLOCK(global_init_mutex); } + GNUTLS_STATIC_MUTEX_UNLOCK(global_init_mutex); } /** diff --git a/lib/locks.h b/lib/locks.h index cf989c6f78..d046341ea4 100644 --- a/lib/locks.h +++ b/lib/locks.h @@ -55,10 +55,6 @@ extern mutex_unlock_func gnutls_mutex_unlock; # define GNUTLS_STATIC_MUTEX_UNLOCK(mutex) \ LeaveCriticalSection(mutex) -# define GNUTLS_STATIC_MUTEX_DEINIT(mutex) \ - DeleteCriticalSection(mutex); \ - free(mutex); mutex = NULL - #elif defined(HAVE_PTHREAD_LOCKS) # include # define GNUTLS_STATIC_MUTEX(mutex) \ @@ -70,17 +66,10 @@ extern mutex_unlock_func gnutls_mutex_unlock; # define GNUTLS_STATIC_MUTEX_UNLOCK(mutex) \ pthread_mutex_unlock(&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) # define GNUTLS_STATIC_MUTEX_LOCK(mutex) # define GNUTLS_STATIC_MUTEX_UNLOCK(mutex) -# define GNUTLS_STATIC_MUTEX_DEINIT(mutex) #endif #endif