diff options
author | Tim Taubert <ttaubert@mozilla.com> | 2016-06-27 16:27:01 +0200 |
---|---|---|
committer | Tim Taubert <ttaubert@mozilla.com> | 2016-06-27 16:27:01 +0200 |
commit | f5a61c40aa3ebfedca4127c42391f95b5ad3d083 (patch) | |
tree | 38e7c31840572bd44d4c60c1594886612635dc41 /cmd | |
parent | d14d925a760633d98b217c3c08a8e424bb7d10d2 (diff) | |
download | nss-hg-f5a61c40aa3ebfedca4127c42391f95b5ad3d083.tar.gz |
Bug 1281724 - Fix leak in crlutil's crlgen.c r=franziskus
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/crlutil/crlgen.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/cmd/crlutil/crlgen.c b/cmd/crlutil/crlgen.c index bc8802137..1f9dc4b43 100644 --- a/cmd/crlutil/crlgen.c +++ b/cmd/crlutil/crlgen.c @@ -67,16 +67,23 @@ static SECStatus crlgen_RmEntry(CRLGENGeneratorData *crlGenData, SECItem *certId) { CRLGENEntryData *data = NULL; + SECStatus rv = SECSuccess; - if (!crlGenData->entryDataHashTable) + if (!crlGenData->entryDataHashTable) { return SECSuccess; + } + data = crlgen_FindEntry(crlGenData, certId); - if (!data) - return SECSuccess; - if (PL_HashTableRemove(crlGenData->entryDataHashTable, certId)) + if (!data) { return SECSuccess; + } + + if (!PL_HashTableRemove(crlGenData->entryDataHashTable, certId)) { + rv = SECFailure; + } + destroyEntryData(data); - return SECFailure; + return rv; } /* Stores CRLGENEntryData in hashtable according to certId |