summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorDr. David von Oheimb <David.von.Oheimb@siemens.com>2022-06-28 11:30:50 +0200
committerHugo Landau <hlandau@openssl.org>2022-07-06 08:21:53 +0100
commit96e13a1679872d879683346c1e09ca227f77efb0 (patch)
treeb8655615c810e608506cd34ba2197b286888ccdf /apps
parent33478aedafaff1f414cabd67fb30970c41996f5c (diff)
app_http_tls_cb(): fix crash on inconsistency w.r.t. use of TLS
This happens if use_ssl is not set but an SSL_CTX is provided. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/18674)
Diffstat (limited to 'apps')
-rw-r--r--apps/lib/apps.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/apps/lib/apps.c b/apps/lib/apps.c
index 53303303b4..7fa667bc66 100644
--- a/apps/lib/apps.c
+++ b/apps/lib/apps.c
@@ -2450,7 +2450,9 @@ BIO *app_http_tls_cb(BIO *bio, void *arg, int connect, int detail)
APP_HTTP_TLS_INFO *info = (APP_HTTP_TLS_INFO *)arg;
SSL_CTX *ssl_ctx = info->ssl_ctx;
- if (connect && detail) { /* connecting with TLS */
+ if (ssl_ctx == NULL) /* not using TLS */
+ return bio;
+ if (connect) {
SSL *ssl;
BIO *sbio = NULL;
@@ -2530,6 +2532,11 @@ ASN1_VALUE *app_http_get_asn1(const char *url, const char *proxy,
"missing SSL_CTX");
goto end;
}
+ if (!use_ssl && ssl_ctx != NULL) {
+ ERR_raise_data(ERR_LIB_HTTP, ERR_R_PASSED_INVALID_ARGUMENT,
+ "SSL_CTX given but use_ssl == 0");
+ goto end;
+ }
info.server = server;
info.port = port;