| Index: net/third_party/nss/patches/cachecerts.patch
|
| diff --git a/net/third_party/nss/patches/cachecerts.patch b/net/third_party/nss/patches/cachecerts.patch
|
| index 18fcc242962081d43841911ccef7edfb0ce9ac3f..1e0e3135c8c22b2c2992b4a25a36359953f91814 100644
|
| --- a/net/third_party/nss/patches/cachecerts.patch
|
| +++ b/net/third_party/nss/patches/cachecerts.patch
|
| @@ -1,8 +1,8 @@
|
| -diff --git a/ssl/ssl3con.c b/ssl/ssl3con.c
|
| -index 163572c..60af5b0 100644
|
| ---- a/ssl/ssl3con.c
|
| -+++ b/ssl/ssl3con.c
|
| -@@ -43,6 +43,7 @@
|
| +diff --git a/lib/ssl/ssl3con.c b/lib/ssl/ssl3con.c
|
| +index 8f1c547..9aaf601 100644
|
| +--- a/lib/ssl/ssl3con.c
|
| ++++ b/lib/ssl/ssl3con.c
|
| +@@ -45,6 +45,7 @@
|
|
|
| static SECStatus ssl3_AuthCertificate(sslSocket *ss);
|
| static void ssl3_CleanupPeerCerts(sslSocket *ss);
|
| @@ -10,15 +10,15 @@ index 163572c..60af5b0 100644
|
| static PK11SymKey *ssl3_GenerateRSAPMS(sslSocket *ss, ssl3CipherSpec *spec,
|
| PK11SlotInfo * serverKeySlot);
|
| static SECStatus ssl3_DeriveMasterSecret(sslSocket *ss, PK11SymKey *pms);
|
| -@@ -6549,6 +6550,7 @@ ssl3_HandleServerHello(sslSocket *ss, SSL3Opaque *b, PRUint32 length)
|
| +@@ -6751,6 +6752,7 @@ ssl3_HandleServerHello(sslSocket *ss, SSL3Opaque *b, PRUint32 length)
|
| /* copy the peer cert from the SID */
|
| if (sid->peerCert != NULL) {
|
| ss->sec.peerCert = CERT_DupCertificate(sid->peerCert);
|
| + ssl3_CopyPeerCertsFromSID(ss, sid);
|
| }
|
|
|
| - /* NULL value for PMS signifies re-use of the old MS */
|
| -@@ -8140,6 +8142,7 @@ compression_found:
|
| + /* NULL value for PMS because we are reusing the old MS */
|
| +@@ -8405,6 +8407,7 @@ compression_found:
|
| ss->sec.ci.sid = sid;
|
| if (sid->peerCert != NULL) {
|
| ss->sec.peerCert = CERT_DupCertificate(sid->peerCert);
|
| @@ -26,7 +26,7 @@ index 163572c..60af5b0 100644
|
| }
|
|
|
| /*
|
| -@@ -9763,6 +9766,44 @@ ssl3_CleanupPeerCerts(sslSocket *ss)
|
| +@@ -10389,6 +10392,44 @@ ssl3_CleanupPeerCerts(sslSocket *ss)
|
| ss->ssl3.peerCertChain = NULL;
|
| }
|
|
|
| @@ -71,7 +71,7 @@ index 163572c..60af5b0 100644
|
| /* Called from ssl3_HandleHandshakeMessage() when it has deciphered a complete
|
| * ssl3 CertificateStatus message.
|
| * Caller must hold Handshake and RecvBuf locks.
|
| -@@ -10041,6 +10082,7 @@ ssl3_AuthCertificate(sslSocket *ss)
|
| +@@ -10669,6 +10710,7 @@ ssl3_AuthCertificate(sslSocket *ss)
|
| }
|
|
|
| ss->sec.ci.sid->peerCert = CERT_DupCertificate(ss->sec.peerCert);
|
| @@ -79,11 +79,11 @@ index 163572c..60af5b0 100644
|
|
|
| if (!ss->sec.isServer) {
|
| CERTCertificate *cert = ss->sec.peerCert;
|
| -diff --git a/ssl/sslimpl.h b/ssl/sslimpl.h
|
| -index 1b38a52..086f6d2 100644
|
| ---- a/ssl/sslimpl.h
|
| -+++ b/ssl/sslimpl.h
|
| -@@ -597,6 +597,8 @@ typedef enum { never_cached,
|
| +diff --git a/lib/ssl/sslimpl.h b/lib/ssl/sslimpl.h
|
| +index ad31aae..9dcc29e 100644
|
| +--- a/lib/ssl/sslimpl.h
|
| ++++ b/lib/ssl/sslimpl.h
|
| +@@ -608,6 +608,8 @@ typedef enum { never_cached,
|
| invalid_cache /* no longer in any cache. */
|
| } Cached;
|
|
|
| @@ -92,7 +92,7 @@ index 1b38a52..086f6d2 100644
|
| struct sslSessionIDStr {
|
| /* The global cache lock must be held when accessing these members when the
|
| * sid is in any cache.
|
| -@@ -611,6 +613,7 @@ struct sslSessionIDStr {
|
| +@@ -622,6 +624,7 @@ struct sslSessionIDStr {
|
| */
|
|
|
| CERTCertificate * peerCert;
|
| @@ -100,10 +100,10 @@ index 1b38a52..086f6d2 100644
|
| SECItemArray peerCertStatus; /* client only */
|
| const char * peerID; /* client only */
|
| const char * urlSvrName; /* client only */
|
| -diff --git a/ssl/sslnonce.c b/ssl/sslnonce.c
|
| +diff --git a/lib/ssl/sslnonce.c b/lib/ssl/sslnonce.c
|
| index 2e861f1..be11008 100644
|
| ---- a/ssl/sslnonce.c
|
| -+++ b/ssl/sslnonce.c
|
| +--- a/lib/ssl/sslnonce.c
|
| ++++ b/lib/ssl/sslnonce.c
|
| @@ -164,6 +164,7 @@ lock_cache(void)
|
| static void
|
| ssl_DestroySID(sslSessionID *sid)
|
|
|