Index: net/third_party/nss/ssl/ssl3ext.c |
diff --git a/net/third_party/nss/ssl/ssl3ext.c b/net/third_party/nss/ssl/ssl3ext.c |
index 03cf05c7393c7ceb4bd3bea2792d1f8941a28d4e..adb81ed8a46a76fe5bb9aa68a315e2c92ed79222 100644 |
--- a/net/third_party/nss/ssl/ssl3ext.c |
+++ b/net/third_party/nss/ssl/ssl3ext.c |
@@ -812,6 +812,16 @@ ssl3_ClientSendChannelIDXtn(sslSocket * ss, PRBool append, |
return 0; |
} |
+ if (ss->ssl3.hs.isResuming && |
+ ss->sec.ci.sid->u.ssl3.originalHandshakeHash.len == 0) { |
+ /* We can't do ChannelID on a connection if we're resuming and didn't |
+ * do ChannelID on the original connection: without ChannelID on the |
+ * original connection we didn't record the handshake hashes needed for |
+ * the signature. */ |
+ PORT_Assert(0); |
+ return 0; |
+ } |
+ |
if (append) { |
SECStatus rv; |
rv = ssl3_AppendHandshakeNumber(ss, ssl_channel_id_xtn, 2); |