From: svost Date: Sun, 21 Feb 2016 14:56:03 +0000 (+0300) Subject: openssl: avoid config file load/race (see bitcoin d4b1d5a) X-Git-Tag: nvc-v0.5.6~57^2 X-Git-Url: https://git.novaco.in/?p=novacoin.git;a=commitdiff_plain;h=a303a6ee32ebc04eb261db780f1e968f58d6e260;hp=d66248f5b8a7ef5b43573e72af9451dbb85f525d openssl: avoid config file load/race (see bitcoin d4b1d5a) --- diff --git a/src/util.cpp b/src/util.cpp index 73621d8..0f84938 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -31,6 +31,7 @@ namespace boost { #include #include #include +#include #ifdef WIN32 #ifdef _MSC_VER @@ -127,6 +128,13 @@ public: ppmutexOpenSSL[i] = new CCriticalSection(); CRYPTO_set_locking_callback(locking_callback); + // OpenSSL can optionally load a config file which lists optional loadable modules and engines. + // We don't use them so we don't require the config. However some of our libs may call functions + // which attempt to load the config file, possibly resulting in an exit() or crash if it is missing + // or corrupt. Explicitly tell OpenSSL not to try to load the file. The result for our libs will be + // that the config appears to have been loaded and there are no modules/engines available. + OPENSSL_no_config(); + #ifdef WIN32 // Seed random number generator with screen scrape and other hardware sources RAND_screen();