Bug 557893 - ProcessRDN leaks decodeItem on failure, r=kaie

--HG--
extra : rebase_source : 4cdfdf205b6de7a810a4bf86cacd5c3e1635aa8d
This commit is contained in:
timeless@mozdev.org 2010-04-07 13:46:00 -07:00
parent 1ff0772521
commit 447ebae44b

View File

@ -937,16 +937,20 @@ ProcessRDN(CERTRDN* rdn, nsAString &finalString, nsINSSComponent *nssComponent)
PRIntn escapedValueCapacity = decodeItem->len * 3 + 3;
nsAutoArrayPtr<char> escapedValue;
escapedValue = new char[escapedValueCapacity];
if (!escapedValue)
if (!escapedValue) {
SECITEM_FreeItem(decodeItem, PR_TRUE);
return NS_ERROR_OUT_OF_MEMORY;
}
SECStatus status = CERT_RFC1485_EscapeAndQuote(
escapedValue.get(),
escapedValueCapacity,
(char*)decodeItem->data,
decodeItem->len);
if (SECSuccess != status)
if (SECSuccess != status) {
SECITEM_FreeItem(decodeItem, PR_TRUE);
return NS_ERROR_FAILURE;
}
avavalue = NS_ConvertUTF8toUTF16(escapedValue);