forked from wolfSSL/wolfssl
Fix for read directory functions with Windows (wc_ReadDirFirst
and wc_ReadDirNext
). Fix to use bit-mask check instead of equality.
This commit is contained in:
@@ -291,7 +291,7 @@ int wc_ReadDirFirst(ReadDirCtx* ctx, const char* path, char** name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
if (ctx->FindFileData.dwFileAttributes != FILE_ATTRIBUTE_DIRECTORY) {
|
if (!(ctx->FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
|
||||||
dnameLen = (int)XSTRLEN(ctx->FindFileData.cFileName);
|
dnameLen = (int)XSTRLEN(ctx->FindFileData.cFileName);
|
||||||
|
|
||||||
if (pathLen + dnameLen + 2 > MAX_FILENAME_SZ) {
|
if (pathLen + dnameLen + 2 > MAX_FILENAME_SZ) {
|
||||||
@@ -427,7 +427,7 @@ int wc_ReadDirNext(ReadDirCtx* ctx, const char* path, char** name)
|
|||||||
|
|
||||||
#ifdef USE_WINDOWS_API
|
#ifdef USE_WINDOWS_API
|
||||||
while (FindNextFileA(ctx->hFind, &ctx->FindFileData)) {
|
while (FindNextFileA(ctx->hFind, &ctx->FindFileData)) {
|
||||||
if (ctx->FindFileData.dwFileAttributes != FILE_ATTRIBUTE_DIRECTORY) {
|
if (!(ctx->FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
|
||||||
dnameLen = (int)XSTRLEN(ctx->FindFileData.cFileName);
|
dnameLen = (int)XSTRLEN(ctx->FindFileData.cFileName);
|
||||||
|
|
||||||
if (pathLen + dnameLen + 2 > MAX_FILENAME_SZ) {
|
if (pathLen + dnameLen + 2 > MAX_FILENAME_SZ) {
|
||||||
|
Reference in New Issue
Block a user