diff options
-rw-r--r-- | crypto/threads_pthread.c | 4 | ||||
-rw-r--r-- | crypto/threads_win.c | 4 |
2 files changed, 6 insertions, 2 deletions
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; } |