Only OPENSSL_free() non-NULL pointers.

This commit is contained in:
Geoff Thorpe 2001-09-01 18:37:17 +00:00
parent 8716dbea40
commit e19ea55783

View File

@ -84,6 +84,7 @@ int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type)
{ {
if(ctx->digest != type) if(ctx->digest != type)
{ {
if(ctx->md_data != NULL)
OPENSSL_free(ctx->md_data); OPENSSL_free(ctx->md_data);
ctx->digest=type; ctx->digest=type;
#ifdef CRYPTO_MDEBUG #ifdef CRYPTO_MDEBUG
@ -155,9 +156,10 @@ int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx)
* because sometimes only copies of the context are ever finalised. * because sometimes only copies of the context are ever finalised.
*/ */
if(ctx->md_data) if(ctx->md_data)
{
memset(ctx->md_data,0,ctx->digest->ctx_size); memset(ctx->md_data,0,ctx->digest->ctx_size);
OPENSSL_free(ctx->md_data); OPENSSL_free(ctx->md_data);
}
memset(ctx,'\0',sizeof *ctx); memset(ctx,'\0',sizeof *ctx);
return 1; return 1;