summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crypto/threads_pthread.c4
-rw-r--r--crypto/threads_win.c4
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;
}