mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-23 08:53:01 -05:00
tst: memfs: MemfsFileNodeMapHasChild: fix problems with streams on directory
This commit is contained in:
parent
27b841faf8
commit
d85d36c94f
@ -276,15 +276,21 @@ VOID MemfsFileNodeMapRemove(MEMFS_FILE_NODE_MAP *FileNodeMap, MEMFS_FILE_NODE *F
|
|||||||
static inline
|
static inline
|
||||||
BOOLEAN MemfsFileNodeMapHasChild(MEMFS_FILE_NODE_MAP *FileNodeMap, MEMFS_FILE_NODE *FileNode)
|
BOOLEAN MemfsFileNodeMapHasChild(MEMFS_FILE_NODE_MAP *FileNodeMap, MEMFS_FILE_NODE *FileNode)
|
||||||
{
|
{
|
||||||
BOOLEAN Result;
|
BOOLEAN Result = FALSE;
|
||||||
WCHAR Root[2] = L"\\";
|
WCHAR Root[2] = L"\\";
|
||||||
PWSTR Remain, Suffix;
|
PWSTR Remain, Suffix;
|
||||||
MEMFS_FILE_NODE_MAP::iterator iter = FileNodeMap->upper_bound(FileNode->FileName);
|
MEMFS_FILE_NODE_MAP::iterator iter = FileNodeMap->upper_bound(FileNode->FileName);
|
||||||
if (iter == FileNodeMap->end())
|
for (; FileNodeMap->end() != iter; ++iter)
|
||||||
return FALSE;
|
{
|
||||||
FspPathSuffix(iter->second->FileName, &Remain, &Suffix, Root);
|
#if defined(MEMFS_NAMED_STREAMS)
|
||||||
Result = 0 == MemfsFileNameCompare(Remain, FileNode->FileName);
|
if (0 != wcschr(iter->second->FileName, L':'))
|
||||||
FspPathCombine(iter->second->FileName, Suffix);
|
continue;
|
||||||
|
#endif
|
||||||
|
FspPathSuffix(iter->second->FileName, &Remain, &Suffix, Root);
|
||||||
|
Result = 0 == MemfsFileNameCompare(Remain, FileNode->FileName);
|
||||||
|
FspPathCombine(iter->second->FileName, Suffix);
|
||||||
|
break;
|
||||||
|
}
|
||||||
return Result;
|
return Result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user