Change FIPS locking functions to macros so we get useful line information.
authorDr. Stephen Henson <steve@openssl.org>
Mon, 4 Apr 2011 15:38:21 +0000 (15:38 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Mon, 4 Apr 2011 15:38:21 +0000 (15:38 +0000)
Set fips_thread_set properly.

fips/fips.c

index 2b66160bb51de24d234de3c9b4d9402ce6680e75..e8d99c50044990abaa1bd0502935a1ed78accf13 100644 (file)
@@ -80,10 +80,10 @@ static int fips_set_owning_thread(void);
 static int fips_clear_owning_thread(void);
 static unsigned char *fips_signature_witness(void);
 
-static void fips_w_lock(void)  { CRYPTO_w_lock(CRYPTO_LOCK_FIPS); }
-static void fips_w_unlock(void)        { CRYPTO_w_unlock(CRYPTO_LOCK_FIPS); }
-static void fips_r_lock(void)  { CRYPTO_r_lock(CRYPTO_LOCK_FIPS); }
-static void fips_r_unlock(void)        { CRYPTO_r_unlock(CRYPTO_LOCK_FIPS); }
+#define fips_w_lock()  CRYPTO_w_lock(CRYPTO_LOCK_FIPS)
+#define fips_w_unlock()        CRYPTO_w_unlock(CRYPTO_LOCK_FIPS)
+#define fips_r_lock()  CRYPTO_r_lock(CRYPTO_LOCK_FIPS)
+#define fips_r_unlock()        CRYPTO_r_unlock(CRYPTO_LOCK_FIPS)
 
 static void fips_set_mode(int onoff)
        {
@@ -404,6 +404,7 @@ int fips_set_owning_thread(void)
                        {
                        CRYPTO_THREADID_current(&fips_thread);
                        ret = 1;
+                       fips_thread_set = 1;
                        }
                CRYPTO_w_unlock(CRYPTO_LOCK_FIPS2);
                }