forked from wolfSSL/wolfssl
clean up staticmemory with crl
This commit is contained in:
22
src/crl.c
22
src/crl.c
@ -55,7 +55,7 @@ int InitCRL(WOLFSSL_CRL* crl, WOLFSSL_CERT_MANAGER* cm)
|
||||
#ifdef WOLFSSL_HEAP_TEST
|
||||
crl->heap = (void*)WOLFSSL_HEAP_TEST;
|
||||
#else
|
||||
crl->heap = NULL;
|
||||
crl->heap = cm->heap;
|
||||
#endif
|
||||
crl->cm = cm;
|
||||
crl->crlList = NULL;
|
||||
@ -101,7 +101,7 @@ static int InitCRL_Entry(CRL_Entry* crle, DecodedCRL* dcrl)
|
||||
|
||||
|
||||
/* 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;
|
||||
|
||||
@ -109,9 +109,11 @@ static void FreeCRL_Entry(CRL_Entry* crle)
|
||||
|
||||
while(tmp) {
|
||||
RevokedCert* next = tmp->next;
|
||||
XFREE(tmp, NULL, DYNAMIC_TYPE_REVOKED);
|
||||
XFREE(tmp, heap, DYNAMIC_TYPE_REVOKED);
|
||||
tmp = next;
|
||||
}
|
||||
|
||||
(void)heap;
|
||||
}
|
||||
|
||||
|
||||
@ -124,15 +126,15 @@ void FreeCRL(WOLFSSL_CRL* crl, int dynamic)
|
||||
WOLFSSL_ENTER("FreeCRL");
|
||||
|
||||
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)
|
||||
XFREE(crl->monitors[1].path, NULL, DYNAMIC_TYPE_CRL_MONITOR);
|
||||
XFREE(crl->monitors[1].path, crl->heap, DYNAMIC_TYPE_CRL_MONITOR);
|
||||
|
||||
while(tmp) {
|
||||
CRL_Entry* next = tmp->next;
|
||||
FreeCRL_Entry(tmp);
|
||||
XFREE(tmp, NULL, DYNAMIC_TYPE_CRL_ENTRY);
|
||||
FreeCRL_Entry(tmp, crl->heap);
|
||||
XFREE(tmp, crl->heap, DYNAMIC_TYPE_CRL_ENTRY);
|
||||
tmp = next;
|
||||
}
|
||||
|
||||
@ -149,7 +151,7 @@ void FreeCRL(WOLFSSL_CRL* crl, int dynamic)
|
||||
#endif
|
||||
FreeMutex(&crl->crlLock);
|
||||
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) {
|
||||
WOLFSSL_MSG("LockMutex failed");
|
||||
FreeCRL_Entry(crle);
|
||||
FreeCRL_Entry(crle, crl->heap);
|
||||
XFREE(crle, crl->heap, DYNAMIC_TYPE_CRL_ENTRY);
|
||||
return BAD_MUTEX_E;
|
||||
}
|
||||
@ -307,7 +309,7 @@ int BufferLoadCRL(WOLFSSL_CRL* crl, const byte* buff, long sz, int type)
|
||||
}
|
||||
#endif
|
||||
|
||||
InitDecodedCRL(dcrl);
|
||||
InitDecodedCRL(dcrl, crl->heap);
|
||||
ret = ParseCRL(dcrl, myBuffer, (word32)sz, crl->cm);
|
||||
if (ret != 0) {
|
||||
WOLFSSL_MSG("ParseCRL error");
|
||||
|
@ -9522,7 +9522,7 @@ WOLFSSL_LOCAL int GetNameHash(const byte* source, word32* idx, byte* hash,
|
||||
#ifdef HAVE_CRL
|
||||
|
||||
/* initialize decoded CRL */
|
||||
void InitDecodedCRL(DecodedCRL* dcrl)
|
||||
void InitDecodedCRL(DecodedCRL* dcrl, void* heap)
|
||||
{
|
||||
WOLFSSL_MSG("InitDecodedCRL");
|
||||
|
||||
@ -9532,6 +9532,10 @@ void InitDecodedCRL(DecodedCRL* dcrl)
|
||||
dcrl->signatureOID = 0;
|
||||
dcrl->certs = NULL;
|
||||
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) {
|
||||
RevokedCert* next = tmp->next;
|
||||
XFREE(tmp, NULL, DYNAMIC_TYPE_REVOKED);
|
||||
XFREE(tmp, dcrl->heap, DYNAMIC_TYPE_REVOKED);
|
||||
tmp = next;
|
||||
}
|
||||
}
|
||||
|
@ -32,7 +32,7 @@
|
||||
|
||||
#ifndef NO_CRYPT_TEST
|
||||
|
||||
#if defined(WOLFSSL_STATIC_MEMORY)
|
||||
#if defined(WOLFSSL_STATIC_MEMORY) && !defined(HAVE_IO_POOL)
|
||||
#ifndef HAVE_PKCS7
|
||||
#define USE_CERT_BUFFERS_1024 /* avoid dynamic memory from fopen */
|
||||
#endif
|
||||
|
@ -812,7 +812,7 @@ struct DecodedCRL {
|
||||
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 void FreeDecodedCRL(DecodedCRL*);
|
||||
|
||||
|
Reference in New Issue
Block a user