summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornelsonb%netscape.com <devnull@localhost>2001-06-05 00:41:26 +0000
committernelsonb%netscape.com <devnull@localhost>2001-06-05 00:41:26 +0000
commita9541f6d9c3fdbb27ed1f3646f4fb71d527eb1a5 (patch)
tree43931d4ef3d5e779b082c47673cb7adb3d7be38e
parent6950628b93f06622591ed66c7a8cc3e460efb64b (diff)
downloadnss-hg-a9541f6d9c3fdbb27ed1f3646f4fb71d527eb1a5.tar.gz
Fix bug that caused protocol version number in record layer to be wrong
when restarting SSL3 (not TLS) sessions. (no bug number)
-rw-r--r--security/nss/lib/ssl/ssl3con.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/security/nss/lib/ssl/ssl3con.c b/security/nss/lib/ssl/ssl3con.c
index e46a4cae5..7fcff1370 100644
--- a/security/nss/lib/ssl/ssl3con.c
+++ b/security/nss/lib/ssl/ssl3con.c
@@ -2409,6 +2409,7 @@ ssl3_SendClientHello(sslSocket *ss)
{
sslSecurityInfo *sec = ss->sec;
sslSessionID * sid;
+ ssl3CipherSpec * cwSpec;
SECStatus rv;
int i;
int length;
@@ -2520,6 +2521,7 @@ ssl3_SendClientHello(sslSocket *ss)
PRINT_BUF(4, (ss, "client, found session-id:", sid->u.ssl3.sessionID,
sid->u.ssl3.sessionIDLength));
+
ss->ssl3->policy = sid->u.ssl3.policy;
} else {
++ssl3stats.sch_sid_cache_misses;
@@ -2534,6 +2536,14 @@ ssl3_SendClientHello(sslSocket *ss)
}
}
+ ssl_GetSpecWriteLock(ss);
+ cwSpec = ss->ssl3->cwSpec;
+ if (cwSpec->mac_def->mac == mac_null) {
+ /* SSL records are not being MACed. */
+ cwSpec->version = ss->version;
+ }
+ ssl_ReleaseSpecWriteLock(ss);
+
if (sec->ci.sid != NULL) {
ssl_FreeSID(sec->ci.sid); /* decrement ref count, free if zero */
}