Index: net/third_party/nss/ssl/sslnonce.c |
diff --git a/net/third_party/nss/ssl/sslnonce.c b/net/third_party/nss/ssl/sslnonce.c |
index eb5004c19665e05677ec6787db600b85eeb82730..1ca19ca072cc71265ca63730484785d2cd082261 100644 |
--- a/net/third_party/nss/ssl/sslnonce.c |
+++ b/net/third_party/nss/ssl/sslnonce.c |
@@ -122,7 +122,21 @@ ssl_DestroySID(sslSessionID *sid) |
if (sid->version < SSL_LIBRARY_VERSION_3_0) { |
SECITEM_ZfreeItem(&sid->u.ssl2.masterKey, PR_FALSE); |
SECITEM_ZfreeItem(&sid->u.ssl2.cipherArg, PR_FALSE); |
+ } else { |
+ if (sid->u.ssl3.sessionTicket.ticket.data) { |
+ SECITEM_FreeItem(&sid->u.ssl3.sessionTicket.ticket, PR_FALSE); |
+ } |
+ if (sid->u.ssl3.srvName.data) { |
+ SECITEM_FreeItem(&sid->u.ssl3.srvName, PR_FALSE); |
+ } |
+ if (sid->u.ssl3.signedCertTimestamps.data) { |
+ SECITEM_FreeItem(&sid->u.ssl3.signedCertTimestamps, PR_FALSE); |
+ } |
+ if (sid->u.ssl3.originalHandshakeHash.data) { |
+ SECITEM_FreeItem(&sid->u.ssl3.originalHandshakeHash, PR_FALSE); |
+ } |
} |
+ |
if (sid->peerID != NULL) |
PORT_Free((void *)sid->peerID); /* CONST */ |
@@ -142,16 +156,7 @@ ssl_DestroySID(sslSessionID *sid) |
if ( sid->localCert ) { |
CERT_DestroyCertificate(sid->localCert); |
} |
- if (sid->u.ssl3.sessionTicket.ticket.data) { |
- SECITEM_FreeItem(&sid->u.ssl3.sessionTicket.ticket, PR_FALSE); |
- } |
- if (sid->u.ssl3.srvName.data) { |
- SECITEM_FreeItem(&sid->u.ssl3.srvName, PR_FALSE); |
- } |
- if (sid->u.ssl3.originalHandshakeHash.data) { |
- SECITEM_FreeItem(&sid->u.ssl3.originalHandshakeHash, PR_FALSE); |
- } |
- |
+ |
PORT_ZFree(sid, sizeof(sslSessionID)); |
} |