In CRYPTO_lock(), check that the application cares about locking (provided
authorRichard Levitte <levitte@openssl.org>
Wed, 11 Dec 2002 08:56:35 +0000 (08:56 +0000)
committerRichard Levitte <levitte@openssl.org>
Wed, 11 Dec 2002 08:56:35 +0000 (08:56 +0000)
callbacks) before attempting to lock.

crypto/cryptlib.c

index 830ccc9816fed171af843429023e35e9fd9481cf..fb3e93fe277f31923e707c54839d4a3ba2fd653e 100644 (file)
@@ -472,17 +472,17 @@ void CRYPTO_lock(int mode, int type, const char *file, int line)
 #endif
        if (type < 0)
                {
 #endif
        if (type < 0)
                {
-               struct CRYPTO_dynlock_value *pointer
-                       = CRYPTO_get_dynlock_value(type);
+               if (dynlock_lock_callback != NULL)
+                       {
+                       struct CRYPTO_dynlock_value *pointer
+                               = CRYPTO_get_dynlock_value(type);
 
 
-               OPENSSL_assert(pointer != NULL);
+                       OPENSSL_assert(pointer != NULL);
 
 
-               if (dynlock_lock_callback)
-                       {
                        dynlock_lock_callback(mode, pointer, file, line);
                        dynlock_lock_callback(mode, pointer, file, line);
-                       }
 
 
-               CRYPTO_destroy_dynlockid(type);
+                       CRYPTO_destroy_dynlockid(type);
+                       }
                }
        else
                if (locking_callback != NULL)
                }
        else
                if (locking_callback != NULL)