summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Taubert <ttaubert@mozilla.com>2017-03-03 09:02:04 +0100
committerTim Taubert <ttaubert@mozilla.com>2017-03-03 09:02:04 +0100
commit138abb98b6948b26750dcfdafe0c04b9fe8b2b6a (patch)
treebfd1bc29bba64a138e6621b3fe7183c1c2e83103
parentafca808b9334bc63be45258c88ac737a7cf1321a (diff)
downloadnss-hg-138abb98b6948b26750dcfdafe0c04b9fe8b2b6a.tar.gz
Bug 1342358 - Make sure xtnData->remoteKeyShares was initialized before calling tls13_DestroyKeyShares() r=franziskus
Differential Revision: https://nss-review.dev.mozaws.net/D234
-rw-r--r--lib/ssl/ssl3con.c2
-rw-r--r--lib/ssl/sslsock.c2
-rw-r--r--lib/ssl/tls13con.c3
3 files changed, 4 insertions, 3 deletions
diff --git a/lib/ssl/ssl3con.c b/lib/ssl/ssl3con.c
index 11150a1df..3a3b7a13c 100644
--- a/lib/ssl/ssl3con.c
+++ b/lib/ssl/ssl3con.c
@@ -13347,8 +13347,6 @@ ssl3_DestroySSL3Info(sslSocket *ss)
tls13_DestroyEarlyData(&ss->ssl3.hs.bufferedEarlyData);
ss->ssl3.initialized = PR_FALSE;
-
- SECITEM_FreeItem(&ss->xtnData.nextProto, PR_FALSE);
}
#define MAP_NULL(x) (((x) != 0) ? (x) : SEC_OID_NULL_CIPHER)
diff --git a/lib/ssl/sslsock.c b/lib/ssl/sslsock.c
index 626f4a92a..f089c75e0 100644
--- a/lib/ssl/sslsock.c
+++ b/lib/ssl/sslsock.c
@@ -3704,6 +3704,7 @@ ssl_NewSocket(PRBool makeLocks, SSLProtocolVariant protocolVariant)
PR_INIT_CLIST(&ss->ssl3.hs.lastMessageFlight);
PR_INIT_CLIST(&ss->ssl3.hs.cipherSpecs);
PR_INIT_CLIST(&ss->ssl3.hs.bufferedEarlyData);
+ ssl3_InitExtensionData(&ss->xtnData);
if (makeLocks) {
rv = ssl_MakeLocks(ss);
if (rv != SECSuccess)
@@ -3715,7 +3716,6 @@ ssl_NewSocket(PRBool makeLocks, SSLProtocolVariant protocolVariant)
rv = ssl3_InitGather(&ss->gs);
if (rv != SECSuccess)
goto loser;
- ssl3_InitExtensionData(&ss->xtnData);
return ss;
loser:
diff --git a/lib/ssl/tls13con.c b/lib/ssl/tls13con.c
index edbb29fb0..25ece5446 100644
--- a/lib/ssl/tls13con.c
+++ b/lib/ssl/tls13con.c
@@ -2877,6 +2877,9 @@ tls13_DestroyKeyShares(PRCList *list)
{
PRCList *cur_p;
+ /* The list must be initialized. */
+ PORT_Assert(PR_LIST_HEAD(list));
+
while (!PR_CLIST_IS_EMPTY(list)) {
cur_p = PR_LIST_TAIL(list);
PR_REMOVE_LINK(cur_p);