mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 10:47:28 +02:00
addressed jenkins failure
fix missing mutex initialization
This commit is contained in:
@ -1828,6 +1828,11 @@ int InitSSL_Ctx(WOLFSSL_CTX* ctx, WOLFSSL_METHOD* method, void* heap)
|
|||||||
return MEMORY_E;
|
return MEMORY_E;
|
||||||
}
|
}
|
||||||
XMEMSET(ctx->x509_store.lookup.dirs, 0, sizeof(WOLFSSL_BY_DIR));
|
XMEMSET(ctx->x509_store.lookup.dirs, 0, sizeof(WOLFSSL_BY_DIR));
|
||||||
|
if (wc_InitMutex(&ctx->x509_store.lookup.dirs->lock) != 0) {
|
||||||
|
WOLFSSL_MSG("Bad mutex init");
|
||||||
|
XFREE(ctx->x509_store.lookup.dirs, heap, DYNAMIC_TYPE_OPENSSL);
|
||||||
|
return BAD_MUTEX_E;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -10653,7 +10658,8 @@ int LoadCrlCertByIssuer(WOLFSSL_X509_STORE* store, X509_NAME* issuer, int type)
|
|||||||
return MEMORY_E;
|
return MEMORY_E;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type == X509_LU_CRL && entry->hashes != NULL) {
|
if (type == X509_LU_CRL && entry->hashes != NULL &&
|
||||||
|
wolfSSL_sk_BY_DIR_HASH_num(entry->hashes) > 0) {
|
||||||
/* lock the list */
|
/* lock the list */
|
||||||
if (wc_LockMutex(&lookup->dirs->lock) != 0) {
|
if (wc_LockMutex(&lookup->dirs->lock) != 0) {
|
||||||
WOLFSSL_MSG("wc_LockMutex cdir Lock error");
|
WOLFSSL_MSG("wc_LockMutex cdir Lock error");
|
||||||
@ -10696,7 +10702,6 @@ int LoadCrlCertByIssuer(WOLFSSL_X509_STORE* store, X509_NAME* issuer, int type)
|
|||||||
else if (type == X509_LU_CRL) {
|
else if (type == X509_LU_CRL) {
|
||||||
ret = wolfSSL_X509_load_crl_file(&store->lookup, filename,
|
ret = wolfSSL_X509_load_crl_file(&store->lookup, filename,
|
||||||
WOLFSSL_FILETYPE_PEM);
|
WOLFSSL_FILETYPE_PEM);
|
||||||
printf("return load crl file %d\n", ret);
|
|
||||||
if (ret != WOLFSSL_SUCCESS) {
|
if (ret != WOLFSSL_SUCCESS) {
|
||||||
WOLFSSL_MSG("failed to load CRL\n");
|
WOLFSSL_MSG("failed to load CRL\n");
|
||||||
break;
|
break;
|
||||||
@ -10713,24 +10718,29 @@ int LoadCrlCertByIssuer(WOLFSSL_X509_STORE* store, X509_NAME* issuer, int type)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type == X509_LU_CRL) {
|
if (suffix == MAX_SUFFIX) {
|
||||||
if (wc_LockMutex(&lookup->dirs->lock) != 0) {
|
WOLFSSL_MSG("not found file");
|
||||||
WOLFSSL_MSG("wc_LockMutex cdir Lock error");
|
ret = WOLFSSL_FAILURE;
|
||||||
return BAD_MUTEX_E;
|
} else {
|
||||||
}
|
if (type == X509_LU_CRL) {
|
||||||
if (ph == NULL) {
|
if (wc_LockMutex(&lookup->dirs->lock) != 0) {
|
||||||
ph = wolfSSL_BY_DIR_HASH_new();
|
WOLFSSL_MSG("wc_LockMutex cdir Lock error");
|
||||||
if (ph == NULL) {
|
return BAD_MUTEX_E;
|
||||||
WOLFSSL_MSG("failed to allocate hash stack");
|
|
||||||
ret = WOLFSSL_FAILURE;
|
|
||||||
} else {
|
|
||||||
ph->hash_value = hash;
|
|
||||||
ph->last_suffix = suffix;
|
|
||||||
|
|
||||||
ret = wolfSSL_sk_BY_DIR_HASH_push(entry->hashes, ph);
|
|
||||||
}
|
}
|
||||||
|
if (ph == NULL) {
|
||||||
|
ph = wolfSSL_BY_DIR_HASH_new();
|
||||||
|
if (ph == NULL) {
|
||||||
|
WOLFSSL_MSG("failed to allocate hash stack");
|
||||||
|
ret = WOLFSSL_FAILURE;
|
||||||
|
} else {
|
||||||
|
ph->hash_value = hash;
|
||||||
|
ph->last_suffix = suffix;
|
||||||
|
|
||||||
|
ret = wolfSSL_sk_BY_DIR_HASH_push(entry->hashes, ph);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
wc_UnLockMutex(&lookup->dirs->lock);
|
||||||
}
|
}
|
||||||
wc_UnLockMutex(&lookup->dirs->lock);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
XFREE(filename, NULL, DYNAMIC_TYPE_OPENSSL);
|
XFREE(filename, NULL, DYNAMIC_TYPE_OPENSSL);
|
||||||
|
@ -25858,6 +25858,10 @@ WOLFSSL_X509_STORE* wolfSSL_X509_STORE_new(void)
|
|||||||
goto err_exit;
|
goto err_exit;
|
||||||
}
|
}
|
||||||
XMEMSET(store->lookup.dirs, 0, sizeof(WOLFSSL_BY_DIR));
|
XMEMSET(store->lookup.dirs, 0, sizeof(WOLFSSL_BY_DIR));
|
||||||
|
if (wc_InitMutex(&store->lookup.dirs->lock) != 0) {
|
||||||
|
WOLFSSL_MSG("Bad mutex init");
|
||||||
|
goto err_exit;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return store;
|
return store;
|
||||||
|
@ -679,6 +679,7 @@ WOLFSSL_API int wolfCrypt_Cleanup(void);
|
|||||||
#if !defined(NO_WOLFSSL_DIR)\
|
#if !defined(NO_WOLFSSL_DIR)\
|
||||||
&& !defined(WOLFSSL_NUCLEUS) && !defined(WOLFSSL_NUCLEUS_1_2)
|
&& !defined(WOLFSSL_NUCLEUS) && !defined(WOLFSSL_NUCLEUS_1_2)
|
||||||
#if defined(USE_WINDOWS_API)
|
#if defined(USE_WINDOWS_API)
|
||||||
|
#include <sys/stat.h>
|
||||||
#define XSTAT _stat
|
#define XSTAT _stat
|
||||||
#define SEPARATOR_CHAR ';'
|
#define SEPARATOR_CHAR ';'
|
||||||
#elif defined(WOLFSSL_ZEPHYR)
|
#elif defined(WOLFSSL_ZEPHYR)
|
||||||
@ -730,6 +731,7 @@ WOLFSSL_API int wolfCrypt_Cleanup(void);
|
|||||||
#ifdef USE_WINDOWS_API
|
#ifdef USE_WINDOWS_API
|
||||||
WIN32_FIND_DATAA FindFileData;
|
WIN32_FIND_DATAA FindFileData;
|
||||||
HANDLE hFind;
|
HANDLE hFind;
|
||||||
|
struct XSTAT s;
|
||||||
#elif defined(WOLFSSL_ZEPHYR)
|
#elif defined(WOLFSSL_ZEPHYR)
|
||||||
struct fs_dirent entry;
|
struct fs_dirent entry;
|
||||||
struct fs_dir_t dir;
|
struct fs_dir_t dir;
|
||||||
|
Reference in New Issue
Block a user