In CRYPTO_lock(), check that the application cares about locking (provided
[oweals/openssl.git] / 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)
                {
-               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);
-                       }
 
-               CRYPTO_destroy_dynlockid(type);
+                       CRYPTO_destroy_dynlockid(type);
+                       }
                }
        else
                if (locking_callback != NULL)