diff --git a/wolfcrypt/src/wc_port.c b/wolfcrypt/src/wc_port.c index 08a567433..10c37ba01 100644 --- a/wolfcrypt/src/wc_port.c +++ b/wolfcrypt/src/wc_port.c @@ -431,7 +431,7 @@ int wc_ReadDirFirst(ReadDirCtx* ctx, const char* path, char** name) return BAD_FUNC_ARG; } - XMEMSET(ctx->name, 0, MAX_FILENAME_SZ); + XMEMSET(ctx, 0, sizeof(ReadDirCtx)); pathLen = (int)XSTRLEN(path); #ifdef USE_WINDOWS_API @@ -466,34 +466,34 @@ int wc_ReadDirFirst(ReadDirCtx* ctx, const char* path, char** name) } while (FindNextFileA(ctx->hFind, &ctx->FindFileData)); #elif defined(INTIME_RTOS) - if (pathLen > MAX_FILENAME_SZ - 3) - return BAD_PATH_ERROR; + if (pathLen > MAX_FILENAME_SZ - 3) + return BAD_PATH_ERROR; - XSTRNCPY(ctx->name, path, MAX_FILENAME_SZ - 3); - XSTRNCPY(ctx->name + pathLen, "\\*", MAX_FILENAME_SZ - pathLen); + XSTRNCPY(ctx->name, path, MAX_FILENAME_SZ - 3); + XSTRNCPY(ctx->name + pathLen, "\\*", MAX_FILENAME_SZ - pathLen); - if (!FindFirstRtFile(ctx->name, &ctx->FindFileData, 0)) { - WOLFSSL_MSG("FindFirstFile for path verify locations failed"); - return BAD_PATH_ERROR; - } + if (!FindFirstRtFile(ctx->name, &ctx->FindFileData, 0)) { + WOLFSSL_MSG("FindFirstFile for path verify locations failed"); + return BAD_PATH_ERROR; + } - do { - if (!(ctx->FindFileData.dwFileAttributes & FILE_ATTR_DIRECTORY)) { - dnameLen = (int)XSTRLEN(ctx->FindFileData.cFileName); + do { + if (!(ctx->FindFileData.dwFileAttributes & FILE_ATTR_DIRECTORY)) { + dnameLen = (int)XSTRLEN(ctx->FindFileData.cFileName); - if (pathLen + dnameLen + 2 > MAX_FILENAME_SZ) { - return BAD_PATH_ERROR; - } - XSTRNCPY(ctx->name, path, pathLen + 1); - ctx->name[pathLen] = '\\'; - XSTRNCPY(ctx->name + pathLen + 1, - ctx->FindFileData.cFileName, - MAX_FILENAME_SZ - pathLen - 1); - if (name) - *name = ctx->name; - return 0; - } - } while (FindNextRtFile(&ctx->FindFileData)); + if (pathLen + dnameLen + 2 > MAX_FILENAME_SZ) { + return BAD_PATH_ERROR; + } + XSTRNCPY(ctx->name, path, pathLen + 1); + ctx->name[pathLen] = '\\'; + XSTRNCPY(ctx->name + pathLen + 1, + ctx->FindFileData.cFileName, + MAX_FILENAME_SZ - pathLen - 1); + if (name) + *name = ctx->name; + return 0; + } + } while (FindNextRtFile(&ctx->FindFileData)); #elif defined(WOLFSSL_ZEPHYR) if (fs_opendir(&ctx->dir, path) != 0) { @@ -633,23 +633,23 @@ int wc_ReadDirNext(ReadDirCtx* ctx, const char* path, char** name) } #elif defined(INTIME_RTOS) -while (FindNextRtFile(&ctx->FindFileData)) { - if (!(ctx->FindFileData.dwFileAttributes & FILE_ATTR_DIRECTORY)) { - dnameLen = (int)XSTRLEN(ctx->FindFileData.cFileName); + while (FindNextRtFile(&ctx->FindFileData)) { + if (!(ctx->FindFileData.dwFileAttributes & FILE_ATTR_DIRECTORY)) { + dnameLen = (int)XSTRLEN(ctx->FindFileData.cFileName); - if (pathLen + dnameLen + 2 > MAX_FILENAME_SZ) { - return BAD_PATH_ERROR; - } - XSTRNCPY(ctx->name, path, pathLen + 1); - ctx->name[pathLen] = '\\'; - XSTRNCPY(ctx->name + pathLen + 1, - ctx->FindFileData.cFileName, - MAX_FILENAME_SZ - pathLen - 1); - if (name) - *name = ctx->name; - return 0; - } -} + if (pathLen + dnameLen + 2 > MAX_FILENAME_SZ) { + return BAD_PATH_ERROR; + } + XSTRNCPY(ctx->name, path, pathLen + 1); + ctx->name[pathLen] = '\\'; + XSTRNCPY(ctx->name + pathLen + 1, + ctx->FindFileData.cFileName, + MAX_FILENAME_SZ - pathLen - 1); + if (name) + *name = ctx->name; + return 0; + } + } #elif defined(WOLFSSL_ZEPHYR) while ((fs_readdir(&ctx->dir, &ctx->entry)) != 0) { @@ -748,7 +748,7 @@ void wc_ReadDirClose(ReadDirCtx* ctx) } #elif defined(INTIME_RTOS) - FindRtFileClose(&ctx->FindFileData); + FindRtFileClose(&ctx->FindFileData); #elif defined(WOLFSSL_ZEPHYR) if (ctx->dirp) { diff --git a/wolfssl/wolfcrypt/wc_port.h b/wolfssl/wolfcrypt/wc_port.h index 3c1021534..20be06a3f 100644 --- a/wolfssl/wolfcrypt/wc_port.h +++ b/wolfssl/wolfcrypt/wc_port.h @@ -730,7 +730,7 @@ WOLFSSL_API int wolfCrypt_Cleanup(void); struct M2MB_DIRENT* entry; struct M2MB_STAT s; #elif defined(INTIME_RTOS) - FIND_FILE_DATA FindFileData; + FIND_FILE_DATA FindFileData; #else struct dirent* entry; DIR* dir;