summaryrefslogtreecommitdiff
path: root/lib/md5.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2012-04-23 23:07:40 +0200
committerDaniel Stenberg <daniel@haxx.se>2012-04-23 23:07:40 +0200
commitbd9eb30ffdde211574ba62b0ef5e1b75051fffda (patch)
treef46cf813992d06a6da689b3d855096ec91573fd8 /lib/md5.c
parentdd18e714ff23d60ad43c524e290ab3e3093ba259 (diff)
downloadcurl-bd9eb30ffdde211574ba62b0ef5e1b75051fffda.tar.gz
Curl_MD5_init: fix OOM memory leak
Bug: http://curl.haxx.se/mail/lib-2012-04/0246.html Reported by: Michael Mueller
Diffstat (limited to 'lib/md5.c')
-rw-r--r--lib/md5.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/md5.c b/lib/md5.c
index e58f2c515..8d66d95ec 100644
--- a/lib/md5.c
+++ b/lib/md5.c
@@ -426,9 +426,9 @@ void Curl_md5it(unsigned char *outbuffer, /* 16 bytes */
MD5_Final(outbuffer, &ctx);
}
-MD5_context * Curl_MD5_init(const MD5_params *md5params)
+MD5_context *Curl_MD5_init(const MD5_params *md5params)
{
- MD5_context* ctxt;
+ MD5_context *ctxt;
/* Create MD5 context */
ctxt = malloc(sizeof *ctxt);
@@ -438,12 +438,14 @@ MD5_context * Curl_MD5_init(const MD5_params *md5params)
ctxt->md5_hashctx = malloc(md5params->md5_ctxtsize);
- if(!ctxt->md5_hashctx)
- return ctxt->md5_hashctx;
+ if(!ctxt->md5_hashctx) {
+ free(ctxt);
+ return NULL;
+ }
ctxt->md5_hash = md5params;
- (*md5params->md5_init)(ctxt->md5_hashctx);
+ md5params->md5_init(ctxt->md5_hashctx);
return ctxt;
}