Fix CRYPTO_THREAD_run_once return value checks
authorEmilia Kasper <emilia@openssl.org>
Tue, 15 Mar 2016 14:37:51 +0000 (15:37 +0100)
committerRichard Levitte <levitte@openssl.org>
Tue, 15 Mar 2016 16:59:09 +0000 (17:59 +0100)
Reviewed-by: Richard Levitte <levitte@openssl.org>
crypto/init.c

index b7e023592d39e55800ff001bb6ed93b39b54c948..8c599894ba6ed884d70706a7d8adedc6abc7bcdc 100644 (file)
@@ -594,13 +594,13 @@ int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings)
 # ifndef OPENSSL_NO_STATIC_ENGINE
 #  if !defined(OPENSSL_NO_HW) && !defined(OPENSSL_NO_HW_PADLOCK)
     if ((opts & OPENSSL_INIT_ENGINE_PADLOCK)
 # ifndef OPENSSL_NO_STATIC_ENGINE
 #  if !defined(OPENSSL_NO_HW) && !defined(OPENSSL_NO_HW_PADLOCK)
     if ((opts & OPENSSL_INIT_ENGINE_PADLOCK)
-            && CRYPTO_THREAD_run_once(&engine_padlock,
-                                      ossl_init_engine_padlock))
+            && !CRYPTO_THREAD_run_once(&engine_padlock,
+                                       ossl_init_engine_padlock))
         return 0;
 #  endif
 #  if defined(OPENSSL_SYS_WIN32) && !defined(OPENSSL_NO_CAPIENG)
     if ((opts & OPENSSL_INIT_ENGINE_CAPI)
         return 0;
 #  endif
 #  if defined(OPENSSL_SYS_WIN32) && !defined(OPENSSL_NO_CAPIENG)
     if ((opts & OPENSSL_INIT_ENGINE_CAPI)
-            && CRYPTO_THREAD_run_once(&engine_capi, ossl_init_engine_capi))
+            && !CRYPTO_THREAD_run_once(&engine_capi, ossl_init_engine_capi))
         return 0;
 #  endif
     if ((opts & OPENSSL_INIT_ENGINE_DASYNC)
         return 0;
 #  endif
     if ((opts & OPENSSL_INIT_ENGINE_DASYNC)
@@ -621,7 +621,7 @@ int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings)
 
 #ifndef OPENSSL_NO_COMP
     if ((opts & OPENSSL_INIT_ZLIB)
 
 #ifndef OPENSSL_NO_COMP
     if ((opts & OPENSSL_INIT_ZLIB)
-            && CRYPTO_THREAD_run_once(&zlib, ossl_init_zlib))
+            && !CRYPTO_THREAD_run_once(&zlib, ossl_init_zlib))
         return 0;
 #endif
 
         return 0;
 #endif