"DH_up" had been changed to "DH_up_ref" in libeay.num but the function declaration and implementation had not. So a recent update recreated the original definition in libeay.num ... this corrects it and changes the "dh" code to the "up_ref" variant.
diff --git a/crypto/dh/dh.h b/crypto/dh/dh.h index b6601c6..fe2da7a 100644 --- a/crypto/dh/dh.h +++ b/crypto/dh/dh.h
@@ -166,7 +166,7 @@ DH * DH_new(void); void DH_free(DH *dh); -int DH_up(DH *dh); +int DH_up_ref(DH *dh); int DH_size(const DH *dh); int DH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
diff --git a/crypto/dh/dh_lib.c b/crypto/dh/dh_lib.c index 7c30461..7804bb4 100644 --- a/crypto/dh/dh_lib.c +++ b/crypto/dh/dh_lib.c
@@ -217,7 +217,7 @@ OPENSSL_free(r); } -int DH_up(DH *r) +int DH_up_ref(DH *r) { int i = CRYPTO_add(&r->references, 1, CRYPTO_LOCK_DH); #ifdef REF_PRINT
diff --git a/util/libeay.num b/util/libeay.num index aed4f1c..61c70b4 100755 --- a/util/libeay.num +++ b/util/libeay.num
@@ -2650,13 +2650,12 @@ ENGINE_load_ciphers 3099 EXIST::FUNCTION: ENGINE_get_cipher_by_name 3100 EXIST::FUNCTION: ENGINE_cipher_num 3101 EXIST::FUNCTION: -DH_up_ref 3102 NOEXIST::FUNCTION: +DH_up_ref 3102 EXIST::FUNCTION:DH RSA_up_ref 3103 EXIST::FUNCTION:RSA EVP_DigestInit_dbg 3104 EXIST::FUNCTION: CRYPTO_cleanup_all_ex_data 3105 EXIST::FUNCTION: CRYPTO_set_ex_data_implementation 3106 EXIST::FUNCTION: CRYPTO_ex_data_new_class 3107 EXIST::FUNCTION: CRYPTO_get_ex_data_implementation 3108 EXIST::FUNCTION: -DH_up 3109 EXIST::FUNCTION:DH -BN_pseudo_rand_range 3110 EXIST::FUNCTION: -ERR_unload_strings 3111 EXIST::FUNCTION: +BN_pseudo_rand_range 3109 EXIST::FUNCTION: +ERR_unload_strings 3110 EXIST::FUNCTION: