ITS#10224 libldap: check for OpenSSL EVP_Digest* failure

This commit is contained in:
Howard Chu 2024-06-07 15:33:04 +01:00 committed by Quanah Gibson-Mount
parent 0e7dbc9973
commit 1d556f230f

View File

@ -1194,15 +1194,19 @@ tlso_session_pinning( LDAP *ld, tls_session *sess, char *hashalg, struct berval
goto done;
}
EVP_DigestInit_ex( mdctx, md, NULL );
EVP_DigestUpdate( mdctx, key.bv_val, key.bv_len );
EVP_DigestFinal_ex( mdctx, (unsigned char *)keyhash.bv_val, &len );
keyhash.bv_len = len;
if ( EVP_DigestInit_ex( mdctx, md, NULL ) &&
EVP_DigestUpdate( mdctx, key.bv_val, key.bv_len ) &&
EVP_DigestFinal_ex( mdctx, (unsigned char *)keyhash.bv_val, &len ))
keyhash.bv_len = len;
else
rc = -1;
#if OPENSSL_VERSION_NUMBER >= 0x10100000
EVP_MD_CTX_free( mdctx );
#else
EVP_MD_CTX_destroy( mdctx );
#endif
if ( rc )
goto done;
} else {
keyhash = key;
}