From 7d2f61f66ab4e047fc9aefc2effc1ac6d340a66a Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 7 Aug 2014 12:02:34 +0200 Subject: [PATCH] openssl: replace call to OPENSSL_config OPENSSL_config() is "strongly recommended" to use but unfortunately that function makes an exit() call on wrongly formatted config files which makes it hard to use in some situations. OPENSSL_config() itself calls CONF_modules_load_file() and we use that instead and we ignore its return code! Reported-by: Jan Ehrhardt Bug: http://curl.haxx.se/bug/view.cgi?id=1401 --- lib/vtls/openssl.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c index fa879d97492a7a..62d86c01713768 100644 --- a/lib/vtls/openssl.c +++ b/lib/vtls/openssl.c @@ -741,7 +741,17 @@ int Curl_ossl_init(void) return 0; OpenSSL_add_all_algorithms(); - OPENSSL_config(NULL); + + + /* OPENSSL_config(NULL); is "strongly recommended" to use but unfortunately + that function makes an exit() call on wrongly formatted config files + which makes it hard to use in some situations. OPENSSL_config() itself + calls CONF_modules_load_file() and we use that instead and we ignore + its return code! */ + + (void)CONF_modules_load_file(NULL, NULL, + CONF_MFLAGS_DEFAULT_SECTION| + CONF_MFLAGS_IGNORE_MISSING_FILE); return 1; }