--- src/imapcommon.c.orig 2017-11-05 07:29:47 UTC +++ src/imapcommon.c @@ -554,16 +554,24 @@ extern ICD_Struct *Get_Server_conn( char unsigned int Expiration; struct addrinfo *useai; - EVP_MD_CTX mdctx; + EVP_MD_CTX *mdctx; int md_len; +#if OPENSSL_VERSION_NUMBER < 0x10100000L + EVP_MD_CTX mdctx_; +#define EVP_MD_CTX_new(x) &mdctx_ +#define EVP_MD_CTX_free(x) +#endif + Expiration = PC_Struct.cache_expiration_time; memset( &Server, 0, sizeof Server ); /* need to md5 the passwd regardless, so do that now */ - EVP_DigestInit(&mdctx, EVP_md5()); - EVP_DigestUpdate(&mdctx, Password, strlen(Password)); - EVP_DigestFinal(&mdctx, md5pw, &md_len); + mdctx = EVP_MD_CTX_new(); + EVP_DigestInit(mdctx, EVP_md5()); + EVP_DigestUpdate(mdctx, Password, strlen(Password)); + EVP_DigestFinal(mdctx, md5pw, &md_len); + EVP_MD_CTX_free(mdctx); /* see if we have a reusable connection available */ ICC_Active = NULL; --- src/main.c.orig 2017-11-05 07:29:47 UTC +++ src/main.c @@ -460,7 +460,7 @@ int main( int argc, char *argv[] ) /* Set up OpenSSL thread protection */ ssl_thread_setup(fn); -#ifndef HAVE_RAND_EGD +#ifndef OPENSSL_NO_EGD if ( RAND_egd( ( RAND_file_name( f_randfile, sizeof( f_randfile ) ) == f_randfile ) ? f_randfile : "/.rnd" ) ) #endif { @@ -1574,9 +1574,9 @@ static int verify_callback(int ok, X509_ verify_error = X509_V_ERR_CERT_CHAIN_TOO_LONG; } } - switch (ctx->error) { + switch (err) { case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: - X509_NAME_oneline(X509_get_issuer_name(ctx->current_cert), buf, sizeof(buf)); + X509_NAME_oneline(X509_get_issuer_name(err_cert), buf, sizeof(buf)); syslog(LOG_NOTICE, "issuer= %s", buf); break; case X509_V_ERR_CERT_NOT_YET_VALID: