summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrelyea%netscape.com <devnull@localhost>2002-01-31 02:19:43 +0000
committerrelyea%netscape.com <devnull@localhost>2002-01-31 02:19:43 +0000
commit1b288f7997c66aad12f6a980d9c97db0d1bb0aca (patch)
tree34cca1e86006c6cd41c1afde120acdfed1512375
parent92800ab3ceeca7304fa6cec538f7341c525408ff (diff)
downloadnss-hg-1b288f7997c66aad12f6a980d9c97db0d1bb0aca.tar.gz
Fix certlist memory leak.
-rw-r--r--security/nss/lib/smime/cmssiginfo.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/security/nss/lib/smime/cmssiginfo.c b/security/nss/lib/smime/cmssiginfo.c
index 7c3e96b01..e695bb75d 100644
--- a/security/nss/lib/smime/cmssiginfo.c
+++ b/security/nss/lib/smime/cmssiginfo.c
@@ -110,6 +110,9 @@ NSS_CMSSignerInfo_Destroy(NSSCMSSignerInfo *si)
if (si->cert != NULL)
CERT_DestroyCertificate(si->cert);
+ if (si->certList != NULL)
+ CERT_DestroyCertList(si->certList);
+
/* XXX storage ??? */
}
@@ -854,6 +857,12 @@ NSS_CMSSignerInfo_IncludeCerts(NSSCMSSignerInfo *signerinfo, NSSCMSCertChainMode
if (signerinfo->cert == NULL)
return SECFailure;
+ /* don't leak if we get called twice */
+ if (signerinfo->certList != NULL) {
+ CERT_DestroyCertList(signerinfo->certList);
+ signerinfo->certList = NULL;
+ }
+
switch (cm) {
case NSSCMSCM_None:
signerinfo->certList = NULL;