From: Arne Schwabe Date: Tue, 21 Apr 2020 10:11:22 +0000 (+0200) Subject: Fix tls_ctx_client/server_new leaving error on OpenSSL error stack X-Git-Tag: v2.4.10~26 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=125654bfa6f99a251b581522182e85748dd8043a;p=thirdparty%2Fopenvpn.git Fix tls_ctx_client/server_new leaving error on OpenSSL error stack In the corner case that the global OpenSSL has an invalid command like MinProtocol = TLSv1.0 (due to OpenSSL's idiosyncrasies MinProtocol = TLSv1 would be correct) the SSL_ctx_new function leaves the errors for parsing the config file on the stack. OpenSSL: error:14187180:SSL routines:ssl_do_config:bad value Since the later functions, especially the one of loading the certificates expected a clean error this error got reported at the wrong place. Print the warnings with crypto_msg when we detect that we are in this situation (this also clears the stack). Debian Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=958296 Acked-by: Gert Doering Message-Id: <20200421101122.24284-1-arne@rfc2549.org> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg19802.html Signed-off-by: Gert Doering (cherry picked from commit 75aa88af774abaa168bf72e43e1dbb57be14c044) --- diff --git a/src/openvpn/ssl_openssl.c b/src/openvpn/ssl_openssl.c index 19509b7a6..ff71b9c40 100644 --- a/src/openvpn/ssl_openssl.c +++ b/src/openvpn/ssl_openssl.c @@ -110,6 +110,11 @@ tls_ctx_server_new(struct tls_root_ctx *ctx) { crypto_msg(M_FATAL, "SSL_CTX_new SSLv23_server_method"); } + if (ERR_peek_error() != 0) + { + crypto_msg(M_WARN, "Warning: TLS server context initialisation " + "has warnings."); + } } void @@ -123,6 +128,11 @@ tls_ctx_client_new(struct tls_root_ctx *ctx) { crypto_msg(M_FATAL, "SSL_CTX_new SSLv23_client_method"); } + if (ERR_peek_error() != 0) + { + crypto_msg(M_WARN, "Warning: TLS client context initialisation " + "has warnings."); + } } void