diff options
author | relyea%netscape.com <devnull@localhost> | 2002-01-31 02:19:43 +0000 |
---|---|---|
committer | relyea%netscape.com <devnull@localhost> | 2002-01-31 02:19:43 +0000 |
commit | 1b288f7997c66aad12f6a980d9c97db0d1bb0aca (patch) | |
tree | 34cca1e86006c6cd41c1afde120acdfed1512375 | |
parent | 92800ab3ceeca7304fa6cec538f7341c525408ff (diff) | |
download | nss-hg-1b288f7997c66aad12f6a980d9c97db0d1bb0aca.tar.gz |
Fix certlist memory leak.
-rw-r--r-- | security/nss/lib/smime/cmssiginfo.c | 9 |
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; |