From aa6329b694a981dccd5b0fd124936c4b54fb94a4 Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Sun, 1 Jul 2018 16:31:31 +0200 Subject: Don't leak newTemplate in pk11_copyAttributes() Cherry-pick of NSS fix from 3.37 --- security/nss/lib/pk11wrap/pk11merge.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/security/nss/lib/pk11wrap/pk11merge.c b/security/nss/lib/pk11wrap/pk11merge.c index b2101b819..c6125b6e6 100644 --- a/security/nss/lib/pk11wrap/pk11merge.c +++ b/security/nss/lib/pk11wrap/pk11merge.c @@ -74,7 +74,7 @@ pk11_copyAttributes(PLArenaPool *arena, return SECFailure; } /* remove the unknown attributes. If we don't have enough attributes - * PK11_CreateNewObject() will fail */ + * PK11_CreateNewObject() will fail */ for (i = 0, j = 0; i < copyTemplateCount; i++) { if (copyTemplate[i].ulValueLen != -1) { newTemplate[j] = copyTemplate[i]; @@ -88,6 +88,7 @@ pk11_copyAttributes(PLArenaPool *arena, } if (crv != CKR_OK) { PORT_SetError(PK11_MapError(crv)); + PORT_Free(newTemplate); return SECFailure; } if (targetID == CK_INVALID_HANDLE) { @@ -100,7 +101,7 @@ pk11_copyAttributes(PLArenaPool *arena, copyTemplate, copyTemplateCount); } if (newTemplate) { - free(newTemplate); + PORT_Free(newTemplate); } return rv; } -- cgit v1.2.3