OPENSSL_init_crypto(): check config return code correctly
authorRichard Levitte <levitte@openssl.org>
Fri, 5 Apr 2019 08:28:32 +0000 (10:28 +0200)
committerRichard Levitte <levitte@openssl.org>
Fri, 5 Apr 2019 10:41:19 +0000 (12:41 +0200)
It was assumed that the config functionality returned a boolean.
However, it may return a negative number on error, so we need to take
that into account.

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/8679)

(cherry picked from commit e3af453baceee7401ba0c5044a4c3aeaf246406f)

crypto/init.c

index dc6ec396dd84fea6beba198dfc4e7180070c190f..afb213315ec91ab747fbc8a5c4027c17c73fa7c3 100644 (file)
@@ -702,7 +702,7 @@ int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings)
         ret = RUN_ONCE(&config, ossl_init_config);
         conf_settings = NULL;
         CRYPTO_THREAD_unlock(init_lock);
-        if (!ret)
+        if (ret <= 0)
             return 0;
     }