Bug 1249641 - free dig if PK11_CreateDigestContext or PK11_CreateDigestContext fail. r?ekr draft
authorBogdan Postelnicu <bogdan.postelnicu@softvision.ro>
Fri, 19 Feb 2016 17:53:40 +0200
changeset 332698 72c02de59f93cfec3f833e8b3d5858b7796a08f4
parent 332162 69ec3dc408a2a720cb2b8210fea33e3504aeec22
child 514591 7548d72f6d7a4a006e4a87b8f5f237a7084e3534
push id11213
push userBogdan.Postelnicu@softvision.ro
push dateSat, 20 Feb 2016 05:26:28 +0000
reviewersekr
bugs1249641
milestone47.0a1
Bug 1249641 - free dig if PK11_CreateDigestContext or PK11_CreateDigestContext fail. r?ekr MozReview-Commit-ID: Hv5lr18YUyK
security/nss/lib/jar/jarsign.c
--- a/security/nss/lib/jar/jarsign.c
+++ b/security/nss/lib/jar/jarsign.c
@@ -46,20 +46,22 @@ JAR_calculate_digest(void *data, long le
 
     if (dig == NULL) {
 	/* out of memory allocating digest */
 	return NULL;
     }
 
     md5 = PK11_CreateDigestContext(SEC_OID_MD5);
     if (md5 == NULL) {
+    	PORT_ZFree(dig, sizeof(JAR_Digest));
 	return NULL;
     }
     sha1 = PK11_CreateDigestContext(SEC_OID_SHA1);
     if (sha1 == NULL) {
+	PORT_ZFree(dig, sizeof(JAR_Digest));
 	PK11_DestroyContext(md5, PR_TRUE);
 	return NULL;
     }
 
     if (length >= 0) {
 	PK11_DigestBegin (md5);
 	PK11_DigestBegin (sha1);