# HG changeset patch # User Tim Taubert # Date 1488574640 -3600 # Fri Mar 03 21:57:20 2017 +0100 # Branch NSS_3_28_BRANCH # Node ID b8145d465ad4086439c4e52df434d9046949127a # Parent 3b9ccd6b37c7242f69404fa4a444b43efb12e319 Bug 1342358 - Make sure xtnData->remoteKeyShares was initialized before calling tls13_DestroyKeyShares() r=franziskus Differential Revision: https://nss-review.dev.mozaws.net/D234 diff --git a/lib/ssl/ssl3con.c b/lib/ssl/ssl3con.c --- a/lib/ssl/ssl3con.c +++ b/lib/ssl/ssl3con.c @@ -13294,8 +13294,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 --- a/lib/ssl/sslsock.c +++ b/lib/ssl/sslsock.c @@ -3704,6 +3704,7 @@ ssl_NewSocket(PRBool makeLocks, SSLProto 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, SSLProto 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 --- a/lib/ssl/tls13con.c +++ b/lib/ssl/tls13con.c @@ -2853,6 +2853,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);