From: Jonas Maebe Date: Sun, 8 Dec 2013 17:10:50 +0000 (+0100) Subject: dev_crypto_md5_update: check result of realloc(md_data->data) and don't leak memory... X-Git-Tag: master-pre-reformat~443 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=771e0c6c7a7f738a31b5015c1cabb867dcbb80c1;p=openssl dev_crypto_md5_update: check result of realloc(md_data->data) and don't leak memory if it fails Signed-off-by: Kurt Roeckx Reviewed-by: Rich Salz --- diff --git a/crypto/evp/openbsd_hw.c b/crypto/evp/openbsd_hw.c index 0554019489..78ad707ad8 100644 --- a/crypto/evp/openbsd_hw.c +++ b/crypto/evp/openbsd_hw.c @@ -382,11 +382,15 @@ static int dev_crypto_md5_update(EVP_MD_CTX *ctx,const void *data, unsigned long len) { MD_DATA *md_data=ctx->md_data; + char *tmp_md_data; if(ctx->flags&EVP_MD_CTX_FLAG_ONESHOT) return do_digest(md_data->sess.ses,md_data->md,data,len); - md_data->data=OPENSSL_realloc(md_data->data,md_data->len+len); + tmp_md_data=OPENSSL_realloc(md_data->data,md_data->len+len); + if (tmp_md_data == NULL) + return 0; + md_data->data=tmp_md_data; memcpy(md_data->data+md_data->len,data,len); md_data->len+=len;