Improve SSL failure cleanup case where ssl->ctx isn't set yet.

This commit is contained in:
David Garske 2017-11-02 09:48:12 -07:00
parent 229cecfb61
commit 4084255fd5

View File

@ -4845,6 +4845,7 @@ void SSL_ResourceFree(WOLFSSL* ssl)
#endif
WOLFSSL_HEAP_HINT* ssl_hint = (WOLFSSL_HEAP_HINT*)ssl->heap;
WOLFSSL_HEAP* ctx_heap;
void* heap = ssl->ctx ? ssl->ctx->heap : ssl->heap;
ctx_heap = ssl_hint->memory;
if (wc_LockMutex(&(ctx_heap->memory_mutex)) != 0) {
@ -4864,10 +4865,9 @@ void SSL_ResourceFree(WOLFSSL* ssl)
/* check if tracking stats */
if (ctx_heap->flag & WOLFMEM_TRACK_STATS) {
XFREE(ssl_hint->stats, ssl->ctx ? ssl->ctx->heap : NULL,
DYNAMIC_TYPE_SSL);
XFREE(ssl_hint->stats, heap, 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
}
#endif