SSL_CTX_add_extra_chain_cert transfers ownership of the given certificate,
so it's best to call X509_STORE_add_cert with that certificate before
rather than after it. (This doesn't cause a problem today because OpenSSL
keeps a reference around and no other calls to modify the chain are made
between. As you might guess from this message, this is not always true
within Google!)

--- test/MockHTTPinC/MockHTTP_server.c  (revision 1781186)
+++ test/MockHTTPinC/MockHTTP_server.c  (working copy)
@@ -2755,8 +2755,8 @@
                 X509 *ssl_cert = PEM_read_X509(fp, NULL, NULL, NULL);
                 fclose(fp);

+                X509_STORE_add_cert(store, ssl_cert);
                 SSL_CTX_add_extra_chain_cert(ssl_ctx->ctx, ssl_cert);
-                X509_STORE_add_cert(store, ssl_cert);
             }
         }


Cheers

AGL

Reply via email to