dll,tst: do not add dot entries for root directory

This commit is contained in:
Bill Zissimopoulos
2016-10-23 11:03:44 -07:00
parent e0b0b1b367
commit 23dadcf8a0
4 changed files with 50 additions and 8 deletions

View File

@ -1150,15 +1150,20 @@ static NTSTATUS ReadDirectory(FSP_FILE_SYSTEM *FileSystem,
Context.PBytesTransferred = PBytesTransferred;
Context.OffsetFound = FALSE;
if (0 == Offset)
if (!AddDirInfo(FileNode, L".", Buffer, Length, PBytesTransferred))
return STATUS_SUCCESS;
if (0 == Offset || FileNode->FileInfo.IndexNumber == Offset)
if (L'\0' != FileNode->FileName[1])
{
Context.OffsetFound = FileNode->FileInfo.IndexNumber == Context.Offset;
/* if this is not the root directory add the dot entries */
if (!AddDirInfo(ParentNode, L"..", Buffer, Length, PBytesTransferred))
return STATUS_SUCCESS;
if (0 == Offset)
if (!AddDirInfo(FileNode, L".", Buffer, Length, PBytesTransferred))
return STATUS_SUCCESS;
if (0 == Offset || FileNode->FileInfo.IndexNumber == Offset)
{
Context.OffsetFound = FileNode->FileInfo.IndexNumber == Context.Offset;
if (!AddDirInfo(ParentNode, L"..", Buffer, Length, PBytesTransferred))
return STATUS_SUCCESS;
}
}
if (MemfsFileNodeMapEnumerateChildren(Memfs->FileNodeMap, FileNode, ReadDirectoryEnumFn, &Context))