From dae0b520a094df1fcb2639ab8cf7549e913f01f1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bodo=20M=C3=B6ller?= Date: Fri, 23 Nov 2001 20:56:27 +0000 Subject: [PATCH] fixes submitted by Andy Schneider --- CHANGES | 8 ++++++++ crypto/cryptlib.c | 5 ++++- crypto/engine/hw_ncipher.c | 6 +++--- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/CHANGES b/CHANGES index 3bb27d023d..05ee0cb142 100644 --- a/CHANGES +++ b/CHANGES @@ -4,6 +4,14 @@ Changes between 0.9.6b and 0.9.6c [XX xxx XXXX] + *) Release CRYPTO_LOCK_DYNLOCK when CRYPTO_destroy_dynlockid() + returns early because it has nothing to do. + [Andy Schneider ] + + *) [In 0.9.6c-engine release:] + Fix mutex callback return values in crypto/engine/hw_ncipher.c. + [Andy Schneider ] + *) [In 0.9.6c-engine release:] Add support for Cryptographic Appliance's keyserver technology. (Use engine 'keyclient') diff --git a/crypto/cryptlib.c b/crypto/cryptlib.c index 5231f712bf..821b16adae 100644 --- a/crypto/cryptlib.c +++ b/crypto/cryptlib.c @@ -229,7 +229,10 @@ void CRYPTO_destroy_dynlockid(int i) CRYPTO_w_lock(CRYPTO_LOCK_DYNLOCK); if (dyn_locks == NULL || i >= sk_CRYPTO_dynlock_num(dyn_locks)) - return; + { + CRYPTO_w_lock(CRYPTO_LOCK_DYNLOCK); + return; + } pointer = sk_CRYPTO_dynlock_value(dyn_locks, i); if (pointer != NULL) { diff --git a/crypto/engine/hw_ncipher.c b/crypto/engine/hw_ncipher.c index 41f5900676..b947e8d177 100644 --- a/crypto/engine/hw_ncipher.c +++ b/crypto/engine/hw_ncipher.c @@ -939,14 +939,14 @@ static int hwcrhk_mutex_init(HWCryptoHook_Mutex* mt, { mt->lockid = CRYPTO_get_new_dynlockid(); if (mt->lockid == 0) - return 0; - return 1; + return 1; /* failure */ + return 0; /* success */ } static int hwcrhk_mutex_lock(HWCryptoHook_Mutex *mt) { CRYPTO_w_lock(mt->lockid); - return 1; + return 0; } void hwcrhk_mutex_unlock(HWCryptoHook_Mutex * mt) -- 2.25.1