From: FdaSilvaYY Date: Tue, 1 Mar 2016 20:59:48 +0000 (+0100) Subject: GH773: Possible leak on CRYPTO_THREAD_lock_new failure X-Git-Tag: OpenSSL_1_1_0-pre4~376 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=0b2fc9286f84d12f2f103b0d29c9e6e1e2a6bf87;p=oweals%2Fopenssl.git GH773: Possible leak on CRYPTO_THREAD_lock_new failure Signed-off-by: Rich Salz Reviewed-by: Matt Caswell --- diff --git a/crypto/threads_pthread.c b/crypto/threads_pthread.c index 2b32e142ae..edca77c0b9 100644 --- a/crypto/threads_pthread.c +++ b/crypto/threads_pthread.c @@ -58,8 +58,10 @@ CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void) if (lock == NULL) return NULL; - if (pthread_rwlock_init(lock, NULL) != 0) + if (pthread_rwlock_init(lock, NULL) != 0) { + OPENSSL_free(lock); return NULL; + } return lock; } diff --git a/crypto/threads_win.c b/crypto/threads_win.c index bee628ff81..741e8f827e 100644 --- a/crypto/threads_win.c +++ b/crypto/threads_win.c @@ -59,8 +59,10 @@ CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void) return NULL; /* 0x400 is the spin count value suggested in the documentation */ - if (!InitializeCriticalSectionAndSpinCount(lock, 0x400)) + if (!InitializeCriticalSectionAndSpinCount(lock, 0x400)) { + OPENSSL_free(lock); return NULL; + } return lock; }