Fix bug in s_client. Previously default verify locations would only be loaded
authorMatt Caswell <matt@openssl.org>
Wed, 25 Feb 2015 11:30:43 +0000 (11:30 +0000)
committerMatt Caswell <matt@openssl.org>
Wed, 25 Mar 2015 13:09:31 +0000 (13:09 +0000)
if CAfile or CApath were also supplied and successfully loaded first.

Reviewed-by: Richard Levitte <levitte@openssl.org>
(cherry picked from commit 70e5fd877890489a3972bf8bf50bfec1fca3875e)

apps/s_client.c

index ef41cec1aa19d2e4e57bf449213698e865a2419f..1f37239e274c925fb3daaede0b20ef68a7aa26c6 100644 (file)
@@ -1177,13 +1177,12 @@ int MAIN(int argc, char **argv)
     if (!set_cert_key_stuff(ctx, cert, key))
         goto end;
 
-    if ((!SSL_CTX_load_verify_locations(ctx, CAfile, CApath)) ||
-        (!SSL_CTX_set_default_verify_paths(ctx))) {
-        /*
-         * BIO_printf(bio_err,"error setting default verify locations\n");
-         */
+    if ((CAfile || CApath)
+        && !SSL_CTX_load_verify_locations(ctx, CAfile, CApath)) {
+        ERR_print_errors(bio_err);
+    }
+    if (!SSL_CTX_set_default_verify_paths(ctx)) {
         ERR_print_errors(bio_err);
-        /* goto end; */
     }
 #ifndef OPENSSL_NO_TLSEXT
     if (servername != NULL) {