Index: net/third_party/nss/ssl/ssl3con.c |
diff --git a/net/third_party/nss/ssl/ssl3con.c b/net/third_party/nss/ssl/ssl3con.c |
index 9dbf3996525d3232ee2f1fc2cef3ac99952282b0..326fe5d558d5c99f97cadef62e251388e4669773 100644 |
--- a/net/third_party/nss/ssl/ssl3con.c |
+++ b/net/third_party/nss/ssl/ssl3con.c |
@@ -5899,9 +5899,11 @@ ssl3_HandleServerHelloDone(sslSocket *ss) |
goto loser; /* err code was set. */ |
} |
- rv = ssl3_SendNextProto(ss); |
- if (rv != SECSuccess) { |
- goto loser; /* err code was set. */ |
+ if (!ss->firstHsDone) { |
wtc
2011/10/28 18:22:05
We should add a comment to explain this, because t
agl
2011/10/28 19:15:18
Done.
|
+ rv = ssl3_SendNextProto(ss); |
+ if (rv != SECSuccess) { |
+ goto loser; /* err code was set. */ |
+ } |
} |
rv = ssl3_SendFinished(ss, 0); |
@@ -8836,7 +8838,7 @@ ssl3_HandleFinished(sslSocket *ss, SSL3Opaque *b, PRUint32 length, |
flags = ssl_SEND_FLAG_FORCE_INTO_BUFFER; |
} |
- if (!isServer) { |
+ if (!isServer && !ss->firstHsDone) { |
rv = ssl3_SendNextProto(ss); |
if (rv != SECSuccess) { |
goto xmit_loser; /* err code was set. */ |