From 025a7dcd16319b4519fc0bad489afac1be5be34a Mon Sep 17 00:00:00 2001 From: Marco Oliverio Date: Wed, 25 Mar 2026 13:16:08 +0100 Subject: [PATCH] dtls13: lock list manipulation --- src/dtls13.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/dtls13.c b/src/dtls13.c index 0b2b697b5f..90dd14ca44 100644 --- a/src/dtls13.c +++ b/src/dtls13.c @@ -837,6 +837,11 @@ static void Dtls13RtxRemoveCurAck(WOLFSSL* ssl) { Dtls13RecordNumber *rn, **prevNext; +#ifdef WOLFSSL_RW_THREADED + if (wc_LockMutex(&ssl->dtls13Rtx.mutex) != 0) + return; +#endif + prevNext = &ssl->dtls13Rtx.seenRecords; rn = ssl->dtls13Rtx.seenRecords; @@ -845,12 +850,19 @@ static void Dtls13RtxRemoveCurAck(WOLFSSL* ssl) w64Equal(rn->seq, ssl->keys.curSeq)) { *prevNext = rn->next; XFREE(rn, ssl->heap, DYNAMIC_TYPE_DTLS_MSG); +#ifdef WOLFSSL_RW_THREADED + wc_UnLockMutex(&ssl->dtls13Rtx.mutex); +#endif return; } prevNext = &rn->next; rn = rn->next; } + +#ifdef WOLFSSL_RW_THREADED + wc_UnLockMutex(&ssl->dtls13Rtx.mutex); +#endif } static void Dtls13MaybeSaveClientHello(WOLFSSL* ssl)