From: Geoff Thorpe Date: Sat, 1 Sep 2001 18:37:17 +0000 (+0000) Subject: Only OPENSSL_free() non-NULL pointers. X-Git-Tag: OpenSSL_0_9_6c~123^2~41 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=e19ea55783bc3e1af5bc6a51775ed41b638aab10;p=oweals%2Fopenssl.git Only OPENSSL_free() non-NULL pointers. --- diff --git a/crypto/evp/digest.c b/crypto/evp/digest.c index 5c5b118486..1457a00118 100644 --- a/crypto/evp/digest.c +++ b/crypto/evp/digest.c @@ -84,7 +84,8 @@ int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type) { if(ctx->digest != type) { - OPENSSL_free(ctx->md_data); + if(ctx->md_data != NULL) + OPENSSL_free(ctx->md_data); ctx->digest=type; #ifdef CRYPTO_MDEBUG ctx->md_data=CRYPTO_malloc(type->ctx_size,file,line); @@ -155,9 +156,10 @@ int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx) * because sometimes only copies of the context are ever finalised. */ if(ctx->md_data) - memset(ctx->md_data,0,ctx->digest->ctx_size); - - OPENSSL_free(ctx->md_data); + { + memset(ctx->md_data,0,ctx->digest->ctx_size); + OPENSSL_free(ctx->md_data); + } memset(ctx,'\0',sizeof *ctx); return 1;