diff options
author | Tim Taubert <ttaubert@mozilla.com> | 2017-03-03 09:02:04 +0100 |
---|---|---|
committer | Tim Taubert <ttaubert@mozilla.com> | 2017-03-03 09:02:04 +0100 |
commit | 138abb98b6948b26750dcfdafe0c04b9fe8b2b6a (patch) | |
tree | bfd1bc29bba64a138e6621b3fe7183c1c2e83103 | |
parent | afca808b9334bc63be45258c88ac737a7cf1321a (diff) | |
download | nss-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.c | 2 | ||||
-rw-r--r-- | lib/ssl/sslsock.c | 2 | ||||
-rw-r--r-- | lib/ssl/tls13con.c | 3 |
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); |