Fix static analyzer possible leak

crl would never be null there but clean up code to make sure newcrl->crlLock gets free'd
This commit is contained in:
Juliusz Sosinowicz
2023-10-19 16:58:28 +02:00
parent a3bf7a66a4
commit 2dd8e713f2

View File

@ -829,6 +829,7 @@ static int DupX509_CRL(WOLFSSL_X509_CRL *dupl, const WOLFSSL_X509_CRL* crl)
int wolfSSL_X509_STORE_add_crl(WOLFSSL_X509_STORE *store, WOLFSSL_X509_CRL *newcrl) int wolfSSL_X509_STORE_add_crl(WOLFSSL_X509_STORE *store, WOLFSSL_X509_CRL *newcrl)
{ {
WOLFSSL_X509_CRL *crl; WOLFSSL_X509_CRL *crl;
int ret = 0;
WOLFSSL_ENTER("wolfSSL_X509_STORE_add_crl"); WOLFSSL_ENTER("wolfSSL_X509_STORE_add_crl");
if (store == NULL || newcrl == NULL || store->cm == NULL) if (store == NULL || newcrl == NULL || store->cm == NULL)
@ -843,11 +844,10 @@ int wolfSSL_X509_STORE_add_crl(WOLFSSL_X509_STORE *store, WOLFSSL_X509_CRL *newc
WOLFSSL_MSG("wc_LockRwLock_Rd failed"); WOLFSSL_MSG("wc_LockRwLock_Rd failed");
return BAD_MUTEX_E; return BAD_MUTEX_E;
} }
if (DupX509_CRL(crl, newcrl) != 0) { ret = DupX509_CRL(crl, newcrl);
if (crl != NULL) { wc_UnLockRwLock(&newcrl->crlLock);
wc_UnLockRwLock(&newcrl->crlLock); if (ret != 0) {
FreeCRL(crl, 1); FreeCRL(crl, 1);
}
return WOLFSSL_FAILURE; return WOLFSSL_FAILURE;
} }
wc_UnLockRwLock(&newcrl->crlLock); wc_UnLockRwLock(&newcrl->crlLock);