Skip to content

Commit 49d258f

Browse files
authored
Merge pull request #7124 from SKlimaRA/SKlimaRA/tls13SessionTicketDoubleFree
fixed double free happening during EvictSessionFromCache
2 parents 9137ed6 + 909b437 commit 49d258f

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

src/ssl.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19774,12 +19774,17 @@ void wolfSSL_FreeSession(WOLFSSL_CTX* ctx, WOLFSSL_SESSION* session)
1977419774
#ifdef HAVE_SESSION_TICKET
1977519775
if (session->ticketLenAlloc > 0) {
1977619776
XFREE(session->ticket, session->heap, DYNAMIC_TYPE_SESSION_TICK);
19777+
session->ticket = session->staticTicket;
19778+
session->ticketLen = 0;
19779+
session->ticketLenAlloc = 0;
1977719780
}
1977819781
#if defined(WOLFSSL_TLS13) && defined(WOLFSSL_TICKET_NONCE_MALLOC) && \
1977919782
(!defined(HAVE_FIPS) || (defined(FIPS_VERSION_GE) && FIPS_VERSION_GE(5,3)))
1978019783
if (session->ticketNonce.data != session->ticketNonce.dataStatic) {
1978119784
XFREE(session->ticketNonce.data, session->heap,
1978219785
DYNAMIC_TYPE_SESSION_TICK);
19786+
session->ticketNonce.data = session->ticketNonce.dataStatic;
19787+
session->ticketNonce.len = 0;
1978319788
}
1978419789
#endif /* WOLFSSL_TLS13 && WOLFSSL_TICKET_NONCE_MALLOC && FIPS_VERSION_GE(5,3)*/
1978519790
#endif

0 commit comments

Comments
 (0)