| Index: net/third_party/nss/patches/fallbackscsv.patch
|
| diff --git a/net/third_party/nss/patches/fallbackscsv.patch b/net/third_party/nss/patches/fallbackscsv.patch
|
| index 005132c59e6b18374fc84dbf3ddb7b2e31562a2e..13f5b473507529d89c41ce1c020dc9105ff279ae 100644
|
| --- a/net/third_party/nss/patches/fallbackscsv.patch
|
| +++ b/net/third_party/nss/patches/fallbackscsv.patch
|
| @@ -44,10 +44,14 @@ diff -pu a/nss/lib/ssl/ssl3con.c b/nss/lib/ssl/ssl3con.c
|
| }
|
|
|
| /* count compression methods */
|
| -@@ -5353,6 +5365,15 @@ ssl3_SendClientHello(sslSocket *ss, PRBo
|
| - }
|
| - actual_count++;
|
| - }
|
| +@@ -5389,11 +5389,21 @@ ssl3_SendClientHello(sslSocket *ss, PRBo
|
| + if (rv != SECSuccess) {
|
| + if (sid->u.ssl3.lock) { NSSRWLock_UnlockRead(sid->u.ssl3.lock); }
|
| + return rv; /* err set by ssl3_AppendHandshake* */
|
| + }
|
| + }
|
| + }
|
| +
|
| + if (fallbackSCSV) {
|
| + rv = ssl3_AppendHandshakeNumber(ss, TLS_FALLBACK_SCSV,
|
| + sizeof(ssl3CipherSuite));
|
| @@ -57,9 +61,11 @@ diff -pu a/nss/lib/ssl/ssl3con.c b/nss/lib/ssl/ssl3con.c
|
| + }
|
| + actual_count++;
|
| + }
|
| - for (i = 0; i < ssl_V3_SUITES_IMPLEMENTED; i++) {
|
| - ssl3CipherSuiteCfg *suite = &ss->cipherSuites[i];
|
| - if (config_match(suite, ss->ssl3.policy, PR_TRUE, &ss->vrange)) {
|
| ++
|
| + /* if cards were removed or inserted between count_cipher_suites and
|
| + * generating our list, detect the error here rather than send it off to
|
| + * the server.. */
|
| + if (actual_count != num_suites) {
|
| @@ -8084,6 +8105,19 @@ ssl3_HandleClientHello(sslSocket *ss, SS
|
| goto loser; /* malformed */
|
| }
|
|
|