diff options
author | relyea%netscape.com <devnull@localhost> | 2002-01-24 00:26:29 +0000 |
---|---|---|
committer | relyea%netscape.com <devnull@localhost> | 2002-01-24 00:26:29 +0000 |
commit | 378f415099bfe36eef5e51c9654b8a1604ba549b (patch) | |
tree | cfb89c9d308704cd078d16fc139044d2e1078d61 | |
parent | 1b949453c38f73fe4633a73bb2c00c3c0693341f (diff) | |
download | nss-hg-378f415099bfe36eef5e51c9654b8a1604ba549b.tar.gz |
Fix memory leaks.
-rw-r--r-- | security/nss/lib/pki/certificate.c | 3 | ||||
-rw-r--r-- | security/nss/lib/pki/pki3hack.c | 1 | ||||
-rw-r--r-- | security/nss/lib/softoken/pcertdb.c | 8 |
3 files changed, 10 insertions, 2 deletions
diff --git a/security/nss/lib/pki/certificate.c b/security/nss/lib/pki/certificate.c index b2ee23bd4..44dbfe4f0 100644 --- a/security/nss/lib/pki/certificate.c +++ b/security/nss/lib/pki/certificate.c @@ -306,7 +306,8 @@ NSSCertificate_BuildChain issuerID = dc->getIssuerIdentifier(dc); if (issuerID) { c = find_issuer_cert_for_identifier(c, issuerID); - nss_ZFreeIf(issuerID); + nssItem_Destroy(issuerID); + issuerID = NULL; if (!c) { nss_SetError(NSS_ERROR_CERTIFICATE_ISSUER_NOT_FOUND); if (statusOpt) *statusOpt = PR_FAILURE; diff --git a/security/nss/lib/pki/pki3hack.c b/security/nss/lib/pki/pki3hack.c index 1315bf444..4a568e035 100644 --- a/security/nss/lib/pki/pki3hack.c +++ b/security/nss/lib/pki/pki3hack.c @@ -352,6 +352,7 @@ nss3certificate_getDERSerialNumber(nssDecodedCert *dc, secrv = CERT_SerialNumberFromDERCert(&cc->derCert, &derSerial); if (secrv == SECSuccess) { (void)nssItem_Create(arena, serial, derSerial.len, derSerial.data); + PORT_Free(derSerial.data); return PR_SUCCESS; } return PR_FAILURE; diff --git a/security/nss/lib/softoken/pcertdb.c b/security/nss/lib/softoken/pcertdb.c index 8af3f83a8..89cb261c6 100644 --- a/security/nss/lib/softoken/pcertdb.c +++ b/security/nss/lib/softoken/pcertdb.c @@ -2439,7 +2439,7 @@ UpdateSubjectWithEmailAddr(NSSLOWCERTCertDBHandle *dbhandle, SECItem *derSubject, char *emailAddr) { PRBool save = PR_FALSE, delold = PR_FALSE; - certDBEntrySubject *entry; + certDBEntrySubject *entry = NULL; SECStatus rv; if (emailAddr) { @@ -2450,6 +2450,9 @@ UpdateSubjectWithEmailAddr(NSSLOWCERTCertDBHandle *dbhandle, } entry = ReadDBSubjectEntry(dbhandle,derSubject); + if (entry == NULL) { + goto loser; + } if ( entry->emailAddr ) { if ( (emailAddr == NULL) || @@ -2495,10 +2498,12 @@ UpdateSubjectWithEmailAddr(NSSLOWCERTCertDBHandle *dbhandle, } } + DestroyDBEntry((certDBEntry *)entry); if (emailAddr) PORT_Free(emailAddr); return(SECSuccess); loser: + if (entry) DestroyDBEntry((certDBEntry *)entry); if (emailAddr) PORT_Free(emailAddr); return(SECFailure); } @@ -2845,6 +2850,7 @@ AddPermSubjectNode(certDBEntrySubject *entry, NSSLOWCERTCertificate *cert, } DeleteDBSubjectEntry(cert->dbhandle, &cert->derSubject); rv = WriteDBSubjectEntry(cert->dbhandle, entry); + DestroyDBEntry((certDBEntry *)entry); return(rv); } |