Unverified Commit 290292b4 by Edward Thomson Committed by GitHub

Merge pull request #4710 from pks-t/pks/ssl-init-errors

streams: report OpenSSL errors if global init fails
parents f4633791 75395c87
...@@ -218,39 +218,34 @@ int git_openssl_stream_global_init(void) ...@@ -218,39 +218,34 @@ int git_openssl_stream_global_init(void)
* compatibility. We then disable SSL so we only allow OpenSSL * compatibility. We then disable SSL so we only allow OpenSSL
* to speak TLSv1 to perform the encryption itself. * to speak TLSv1 to perform the encryption itself.
*/ */
git__ssl_ctx = SSL_CTX_new(SSLv23_method()); if (!(git__ssl_ctx = SSL_CTX_new(SSLv23_method())))
if (!git__ssl_ctx) { goto error;
return -1;
}
SSL_CTX_set_options(git__ssl_ctx, ssl_opts); SSL_CTX_set_options(git__ssl_ctx, ssl_opts);
SSL_CTX_set_mode(git__ssl_ctx, SSL_MODE_AUTO_RETRY); SSL_CTX_set_mode(git__ssl_ctx, SSL_MODE_AUTO_RETRY);
SSL_CTX_set_verify(git__ssl_ctx, SSL_VERIFY_NONE, NULL); SSL_CTX_set_verify(git__ssl_ctx, SSL_VERIFY_NONE, NULL);
if (!SSL_CTX_set_default_verify_paths(git__ssl_ctx)) { if (!SSL_CTX_set_default_verify_paths(git__ssl_ctx))
SSL_CTX_free(git__ssl_ctx); goto error;
git__ssl_ctx = NULL;
return -1;
}
if (!ciphers) { if (!ciphers)
ciphers = GIT_SSL_DEFAULT_CIPHERS; ciphers = GIT_SSL_DEFAULT_CIPHERS;
}
if(!SSL_CTX_set_cipher_list(git__ssl_ctx, ciphers)) { if(!SSL_CTX_set_cipher_list(git__ssl_ctx, ciphers))
SSL_CTX_free(git__ssl_ctx); goto error;
git__ssl_ctx = NULL;
return -1;
}
if (init_bio_method() < 0) { if (init_bio_method() < 0)
SSL_CTX_free(git__ssl_ctx); goto error;
git__ssl_ctx = NULL;
return -1;
}
git__on_shutdown(shutdown_ssl); git__on_shutdown(shutdown_ssl);
return 0; return 0;
error:
giterr_set(GITERR_NET, "could not initialize openssl: %s",
ERR_error_string(ERR_get_error(), NULL));
SSL_CTX_free(git__ssl_ctx);
git__ssl_ctx = NULL;
return -1;
} }
#if defined(GIT_THREADS) && defined(OPENSSL_LEGACY_API) #if defined(GIT_THREADS) && defined(OPENSSL_LEGACY_API)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment