From 3034dd9e2d3cbfdb0c47735aa70a9fb421a0c00d Mon Sep 17 00:00:00 2001 From: Marco Oliverio Date: Wed, 25 Mar 2026 08:16:56 +0100 Subject: [PATCH] dtls13: release mutex on error --- src/dtls13.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/dtls13.c b/src/dtls13.c index 7598bf0e9b..0b2b697b5f 100644 --- a/src/dtls13.c +++ b/src/dtls13.c @@ -737,6 +737,9 @@ int Dtls13RtxAddAck(WOLFSSL* ssl, w64wrapper epoch, w64wrapper seq) for (; cur != NULL; prevNext = &cur->next, cur = cur->next) { if (w64Equal(cur->epoch, epoch) && w64Equal(cur->seq, seq)) { /* already in list. no duplicates. */ + #ifdef WOLFSSL_RW_THREADED + wc_UnLockMutex(&ssl->dtls13Rtx.mutex); + #endif return 0; } else if (w64LT(epoch, cur->epoch) @@ -747,8 +750,12 @@ int Dtls13RtxAddAck(WOLFSSL* ssl, w64wrapper epoch, w64wrapper seq) } rn = Dtls13NewRecordNumber(epoch, seq, ssl->heap); - if (rn == NULL) + if (rn == NULL) { + #ifdef WOLFSSL_RW_THREADED + wc_UnLockMutex(&ssl->dtls13Rtx.mutex); + #endif return MEMORY_E; + } *prevNext = rn; rn->next = cur;