Fix for wc_ReadDirFirst
to return non-zero value if no files found. Fix for wolfSSL_CTX_load_verify_locations
to not return failure due to wc_ReadDirNext
“no more files” -1 response.
This commit is contained in:
parent
2f9f746053
commit
d75a9f2436
12
src/ssl.c
12
src/ssl.c
@ -5621,6 +5621,7 @@ int wolfSSL_CTX_load_verify_locations(WOLFSSL_CTX* ctx, const char* file,
|
||||
const char* path)
|
||||
{
|
||||
int ret = SSL_SUCCESS;
|
||||
int fileRet;
|
||||
|
||||
WOLFSSL_ENTER("wolfSSL_CTX_load_verify_locations");
|
||||
|
||||
@ -5644,16 +5645,21 @@ int wolfSSL_CTX_load_verify_locations(WOLFSSL_CTX* ctx, const char* file,
|
||||
#endif
|
||||
|
||||
/* try to load each regular file in path */
|
||||
ret = wc_ReadDirFirst(readCtx, path, &name);
|
||||
while (ret == 0 && name) {
|
||||
fileRet = wc_ReadDirFirst(readCtx, path, &name);
|
||||
while (fileRet == 0 && name) {
|
||||
ret = ProcessFile(ctx, name, SSL_FILETYPE_PEM, CA_TYPE,
|
||||
NULL, 0, NULL);
|
||||
if (ret != SSL_SUCCESS)
|
||||
break;
|
||||
ret = wc_ReadDirNext(readCtx, path, &name);
|
||||
fileRet = wc_ReadDirNext(readCtx, path, &name);
|
||||
}
|
||||
wc_ReadDirClose(readCtx);
|
||||
|
||||
/* pass directory read failure to response code */
|
||||
if (ret == SSL_SUCCESS && fileRet != -1) {
|
||||
ret = fileRet;
|
||||
}
|
||||
|
||||
#ifdef WOLFSSL_SMALL_STACK
|
||||
XFREE(readCtx, ctx->heap, DYNAMIC_TYPE_DIRCTX);
|
||||
#endif
|
||||
|
@ -197,9 +197,10 @@ int wolfCrypt_Cleanup(void)
|
||||
#if !defined(NO_FILESYSTEM) && !defined(NO_WOLFSSL_DIR)
|
||||
|
||||
/* File Handling Helpers */
|
||||
/* returns 0 if file found, -1 if no files or negative error */
|
||||
int wc_ReadDirFirst(ReadDirCtx* ctx, const char* path, char** name)
|
||||
{
|
||||
int ret = 0;
|
||||
int ret = -1; /* default to no files found */
|
||||
|
||||
if (name)
|
||||
*name = NULL;
|
||||
@ -258,9 +259,10 @@ int wc_ReadDirFirst(ReadDirCtx* ctx, const char* path, char** name)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* returns 0 if file found, -1 if no more files */
|
||||
int wc_ReadDirNext(ReadDirCtx* ctx, const char* path, char** name)
|
||||
{
|
||||
int ret = -1;
|
||||
int ret = -1; /* default to no file found */
|
||||
|
||||
if (name)
|
||||
*name = NULL;
|
||||
|
Loading…
x
Reference in New Issue
Block a user