mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-08-02 20:24:39 +02:00
Improve SSL failure cleanup case where ssl->ctx isn't set yet.
This commit is contained in:
@@ -4845,6 +4845,7 @@ void SSL_ResourceFree(WOLFSSL* ssl)
|
|||||||
#endif
|
#endif
|
||||||
WOLFSSL_HEAP_HINT* ssl_hint = (WOLFSSL_HEAP_HINT*)ssl->heap;
|
WOLFSSL_HEAP_HINT* ssl_hint = (WOLFSSL_HEAP_HINT*)ssl->heap;
|
||||||
WOLFSSL_HEAP* ctx_heap;
|
WOLFSSL_HEAP* ctx_heap;
|
||||||
|
void* heap = ssl->ctx ? ssl->ctx->heap : ssl->heap;
|
||||||
|
|
||||||
ctx_heap = ssl_hint->memory;
|
ctx_heap = ssl_hint->memory;
|
||||||
if (wc_LockMutex(&(ctx_heap->memory_mutex)) != 0) {
|
if (wc_LockMutex(&(ctx_heap->memory_mutex)) != 0) {
|
||||||
@@ -4864,10 +4865,9 @@ void SSL_ResourceFree(WOLFSSL* ssl)
|
|||||||
|
|
||||||
/* check if tracking stats */
|
/* check if tracking stats */
|
||||||
if (ctx_heap->flag & WOLFMEM_TRACK_STATS) {
|
if (ctx_heap->flag & WOLFMEM_TRACK_STATS) {
|
||||||
XFREE(ssl_hint->stats, ssl->ctx ? ssl->ctx->heap : NULL,
|
XFREE(ssl_hint->stats, heap, DYNAMIC_TYPE_SSL);
|
||||||
DYNAMIC_TYPE_SSL);
|
|
||||||
}
|
}
|
||||||
XFREE(ssl->heap, ssl->ctx ? ssl->ctx->heap : NULL, DYNAMIC_TYPE_SSL);
|
XFREE(ssl->heap, heap, DYNAMIC_TYPE_SSL);
|
||||||
#ifdef WOLFSSL_HEAP_TEST
|
#ifdef WOLFSSL_HEAP_TEST
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user