Fix broken loading of client CAs
authorAndreas Karlsson <andreas@proxel.se>
Fri, 1 Jul 2016 23:19:39 +0000 (01:19 +0200)
committerRich Salz <rsalz@openssl.org>
Sat, 2 Jul 2016 19:30:13 +0000 (15:30 -0400)
The SSL_load_client_CA_file() failed to load any CAs due to an
inccorrect assumption about the return value of lh_*_insert(). The
return value when inserting into a hash is the old value of the key.

The bug was introduced in 3c82e437bb3af822ea13cd5a24bab0745c556246.

Reviewed-by: Kurt Roeckx <kurt@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1279)

ssl/ssl_cert.c

index c6e2d09eb7f3a973747bab92794ec1206cf79b2e..2a07ee6910a6b9877c48ae3ed8cae94c0c88e138 100644 (file)
@@ -605,8 +605,7 @@ STACK_OF(X509_NAME) *SSL_load_client_CA_file(const char *file)
             X509_NAME_free(xn);
             xn = NULL;
         } else {
-            if (!lh_X509_NAME_insert(name_hash, xn))
-                goto err;
+            lh_X509_NAME_insert(name_hash, xn);
             if (!sk_X509_NAME_push(ret, xn))
                 goto err;
         }