clean up staticmemory with crl

This commit is contained in:
Jacob Barthelmeh
2016-06-06 17:50:54 -06:00
parent e1edadafe1
commit 738373038b
4 changed files with 20 additions and 14 deletions

View File

@@ -55,7 +55,7 @@ int InitCRL(WOLFSSL_CRL* crl, WOLFSSL_CERT_MANAGER* cm)
#ifdef WOLFSSL_HEAP_TEST #ifdef WOLFSSL_HEAP_TEST
crl->heap = (void*)WOLFSSL_HEAP_TEST; crl->heap = (void*)WOLFSSL_HEAP_TEST;
#else #else
crl->heap = NULL; crl->heap = cm->heap;
#endif #endif
crl->cm = cm; crl->cm = cm;
crl->crlList = NULL; crl->crlList = NULL;
@@ -101,7 +101,7 @@ static int InitCRL_Entry(CRL_Entry* crle, DecodedCRL* dcrl)
/* Free all CRL Entry resources */ /* Free all CRL Entry resources */
static void FreeCRL_Entry(CRL_Entry* crle) static void FreeCRL_Entry(CRL_Entry* crle, void* heap)
{ {
RevokedCert* tmp = crle->certs; RevokedCert* tmp = crle->certs;
@@ -109,9 +109,11 @@ static void FreeCRL_Entry(CRL_Entry* crle)
while(tmp) { while(tmp) {
RevokedCert* next = tmp->next; RevokedCert* next = tmp->next;
XFREE(tmp, NULL, DYNAMIC_TYPE_REVOKED); XFREE(tmp, heap, DYNAMIC_TYPE_REVOKED);
tmp = next; tmp = next;
} }
(void)heap;
} }
@@ -124,15 +126,15 @@ void FreeCRL(WOLFSSL_CRL* crl, int dynamic)
WOLFSSL_ENTER("FreeCRL"); WOLFSSL_ENTER("FreeCRL");
if (crl->monitors[0].path) if (crl->monitors[0].path)
XFREE(crl->monitors[0].path, NULL, DYNAMIC_TYPE_CRL_MONITOR); XFREE(crl->monitors[0].path, crl->heap, DYNAMIC_TYPE_CRL_MONITOR);
if (crl->monitors[1].path) if (crl->monitors[1].path)
XFREE(crl->monitors[1].path, NULL, DYNAMIC_TYPE_CRL_MONITOR); XFREE(crl->monitors[1].path, crl->heap, DYNAMIC_TYPE_CRL_MONITOR);
while(tmp) { while(tmp) {
CRL_Entry* next = tmp->next; CRL_Entry* next = tmp->next;
FreeCRL_Entry(tmp); FreeCRL_Entry(tmp, crl->heap);
XFREE(tmp, NULL, DYNAMIC_TYPE_CRL_ENTRY); XFREE(tmp, crl->heap, DYNAMIC_TYPE_CRL_ENTRY);
tmp = next; tmp = next;
} }
@@ -149,7 +151,7 @@ void FreeCRL(WOLFSSL_CRL* crl, int dynamic)
#endif #endif
FreeMutex(&crl->crlLock); FreeMutex(&crl->crlLock);
if (dynamic) /* free self */ if (dynamic) /* free self */
XFREE(crl, NULL, DYNAMIC_TYPE_CRL); XFREE(crl, crl->heap, DYNAMIC_TYPE_CRL);
} }
@@ -253,7 +255,7 @@ static int AddCRL(WOLFSSL_CRL* crl, DecodedCRL* dcrl)
if (LockMutex(&crl->crlLock) != 0) { if (LockMutex(&crl->crlLock) != 0) {
WOLFSSL_MSG("LockMutex failed"); WOLFSSL_MSG("LockMutex failed");
FreeCRL_Entry(crle); FreeCRL_Entry(crle, crl->heap);
XFREE(crle, crl->heap, DYNAMIC_TYPE_CRL_ENTRY); XFREE(crle, crl->heap, DYNAMIC_TYPE_CRL_ENTRY);
return BAD_MUTEX_E; return BAD_MUTEX_E;
} }
@@ -307,7 +309,7 @@ int BufferLoadCRL(WOLFSSL_CRL* crl, const byte* buff, long sz, int type)
} }
#endif #endif
InitDecodedCRL(dcrl); InitDecodedCRL(dcrl, crl->heap);
ret = ParseCRL(dcrl, myBuffer, (word32)sz, crl->cm); ret = ParseCRL(dcrl, myBuffer, (word32)sz, crl->cm);
if (ret != 0) { if (ret != 0) {
WOLFSSL_MSG("ParseCRL error"); WOLFSSL_MSG("ParseCRL error");

View File

@@ -9522,7 +9522,7 @@ WOLFSSL_LOCAL int GetNameHash(const byte* source, word32* idx, byte* hash,
#ifdef HAVE_CRL #ifdef HAVE_CRL
/* initialize decoded CRL */ /* initialize decoded CRL */
void InitDecodedCRL(DecodedCRL* dcrl) void InitDecodedCRL(DecodedCRL* dcrl, void* heap)
{ {
WOLFSSL_MSG("InitDecodedCRL"); WOLFSSL_MSG("InitDecodedCRL");
@@ -9532,6 +9532,10 @@ void InitDecodedCRL(DecodedCRL* dcrl)
dcrl->signatureOID = 0; dcrl->signatureOID = 0;
dcrl->certs = NULL; dcrl->certs = NULL;
dcrl->totalCerts = 0; dcrl->totalCerts = 0;
dcrl->heap = heap;
#ifdef WOLFSSL_HEAP_TEST
dcrl->heap = (void)WOLFSSL_HEAP_TEST;
#endif
} }
@@ -9544,7 +9548,7 @@ void FreeDecodedCRL(DecodedCRL* dcrl)
while(tmp) { while(tmp) {
RevokedCert* next = tmp->next; RevokedCert* next = tmp->next;
XFREE(tmp, NULL, DYNAMIC_TYPE_REVOKED); XFREE(tmp, dcrl->heap, DYNAMIC_TYPE_REVOKED);
tmp = next; tmp = next;
} }
} }

View File

@@ -32,7 +32,7 @@
#ifndef NO_CRYPT_TEST #ifndef NO_CRYPT_TEST
#if defined(WOLFSSL_STATIC_MEMORY) #if defined(WOLFSSL_STATIC_MEMORY) && !defined(HAVE_IO_POOL)
#ifndef HAVE_PKCS7 #ifndef HAVE_PKCS7
#define USE_CERT_BUFFERS_1024 /* avoid dynamic memory from fopen */ #define USE_CERT_BUFFERS_1024 /* avoid dynamic memory from fopen */
#endif #endif

View File

@@ -812,7 +812,7 @@ struct DecodedCRL {
void* heap; void* heap;
}; };
WOLFSSL_LOCAL void InitDecodedCRL(DecodedCRL*); WOLFSSL_LOCAL void InitDecodedCRL(DecodedCRL*, void* heap);
WOLFSSL_LOCAL int ParseCRL(DecodedCRL*, const byte* buff, word32 sz, void* cm); WOLFSSL_LOCAL int ParseCRL(DecodedCRL*, const byte* buff, word32 sz, void* cm);
WOLFSSL_LOCAL void FreeDecodedCRL(DecodedCRL*); WOLFSSL_LOCAL void FreeDecodedCRL(DecodedCRL*);