Stop mishandling the type number in dynlock locking
[openssl.git] / crypto / cryptlib.c
index 5da4828f88a2640b68c03811a54de1438cfa2c52..e9c9b3b5a226e9572151c1f5973ac7d8d22f3e62 100644 (file)
@@ -397,16 +397,15 @@ void CRYPTO_lock(int mode, int type, const char *file, int line)
 #endif
        if (type < 0)
                {
-               int i = -type - 1;
                struct CRYPTO_dynlock_value *pointer
-                       = CRYPTO_get_dynlock_value(i);
+                       = CRYPTO_get_dynlock_value(type);
 
                if (pointer && dynlock_lock_callback)
                        {
                        dynlock_lock_callback(mode, pointer, file, line);
                        }
 
-               CRYPTO_destroy_dynlockid(i);
+               CRYPTO_destroy_dynlockid(type);
                }
        else
                if (locking_callback != NULL)