From: Andre Noll Date: Fri, 21 Dec 2018 17:11:40 +0000 (+0100) Subject: build: Check also for CRYPTO_cleanup_all_ex_data. X-Git-Tag: v0.6.3~35^2 X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=commitdiff_plain;h=a03519e08af6bb3d4a6ba9477eb6a02d6f4c48df;ds=sidebyside build: Check also for CRYPTO_cleanup_all_ex_data. FreeBSD 12 does not seem to have it. This is not fatal since omitting the call to CRYPTO_cleanup_all_ex_data() just results in a harmless memory leak at exit. --- diff --git a/configure.ac b/configure.ac index 54f9fe1c..d993e526 100644 --- a/configure.ac +++ b/configure.ac @@ -104,6 +104,16 @@ if test $HAVE_OPENSSL = yes; then fi test "$ac_cv_have_decl_RSA_set0_key" = yes && AC_DEFINE([HAVE_RSA_SET0_KEY], [1], [openssl >= 1.1]) + + HAVE_CRYPTO_CLEANUP_ALL_EX_DATA=yes + AC_CHECK_DECL([CRYPTO_cleanup_all_ex_data], [], + [HAVE_CRYPTO_CLEANUP_ALL_EX_DATA=no], + [#include ]) + AC_CHECK_LIB([crypto], [CRYPTO_cleanup_all_ex_data], [], + [HAVE_CRYPTO_CLEANUP_ALL_EX_DATA=no]) + test $HAVE_CRYPTO_CLEANUP_ALL_EX_DATA = yes && + AC_DEFINE([HAVE_CRYPTO_CLEANUP_ALL_EX_DATA], [1], + [not available on FreeBSD 12]) fi UNSTASH_FLAGS ######################################################################### gcrypt diff --git a/openssl.c b/openssl.c index 4895e176..d11b1049 100644 --- a/openssl.c +++ b/openssl.c @@ -57,7 +57,9 @@ void crypt_init(void) void crypt_shutdown(void) { +#ifdef HAVE_CRYPTO_CLEANUP_ALL_EX_DATA CRYPTO_cleanup_all_ex_data(); +#endif } static int get_private_key(const char *path, RSA **rsa)