diff --git a/lib/gssapi/krb5/verify_mic.c b/lib/gssapi/krb5/verify_mic.c index 5ce6dee29..0b5b6e1cc 100644 --- a/lib/gssapi/krb5/verify_mic.c +++ b/lib/gssapi/krb5/verify_mic.c @@ -48,7 +48,7 @@ verify_mic_des ) { u_char *p; - EVP_MD_CTX md5; + EVP_MD_CTX *md5; u_char hash[16], *seq; DES_key_schedule schedule; EVP_CIPHER_CTX des_ctx; @@ -75,12 +75,12 @@ verify_mic_des p += 16; /* verify checksum */ - EVP_MD_CTX_init(&md5); - EVP_DigestInit_ex(&md5, EVP_md5(), NULL); - EVP_DigestUpdate(&md5, p - 24, 8); - EVP_DigestUpdate(&md5, message_buffer->value, message_buffer->length); - EVP_DigestFinal_ex(&md5, hash, NULL); - EVP_MD_CTX_cleanup(&md5); + md5 = EVP_MD_CTX_create(); + EVP_DigestInit_ex(md5, EVP_md5(), NULL); + EVP_DigestUpdate(md5, p - 24, 8); + EVP_DigestUpdate(md5, message_buffer->value, message_buffer->length); + EVP_DigestFinal_ex(md5, hash, NULL); + EVP_MD_CTX_destroy(md5); memset (&zero, 0, sizeof(zero)); memcpy (&deskey, key->keyvalue.data, sizeof(deskey));