mirror of
https://github.com/reactos/reactos.git
synced 2025-01-01 03:54:02 +00:00
[NTFS]
Validate the stream we're trying to open properly exists. This check might have to be moved later on when the driver switches to RW svn path=/trunk/; revision=68309
This commit is contained in:
parent
296712e3fa
commit
a45dcb0d07
1 changed files with 15 additions and 0 deletions
|
@ -543,6 +543,7 @@ NtfsDirFindFile(PNTFS_VCB Vcb,
|
|||
PFILE_RECORD_HEADER FileRecord;
|
||||
ULONGLONG MFTIndex;
|
||||
PWSTR Colon;
|
||||
PNTFS_ATTR_CONTEXT DataContext;
|
||||
USHORT Length = 0;
|
||||
|
||||
DPRINT1("NtfsDirFindFile(%p, %p, %S, %p)\n", Vcb, DirectoryFcb, FileToFind, FoundFCB);
|
||||
|
@ -573,6 +574,20 @@ NtfsDirFindFile(PNTFS_VCB Vcb,
|
|||
File.Length = Length;
|
||||
}
|
||||
|
||||
if ((FileRecord->Flags & FRH_DIRECTORY) && Colon != 0)
|
||||
{
|
||||
return STATUS_INVALID_PARAMETER;
|
||||
}
|
||||
else if (Colon != 0)
|
||||
{
|
||||
Status = FindAttribute(Vcb, FileRecord, AttributeData, Colon, wcslen(Colon), &DataContext);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
return STATUS_OBJECT_NAME_NOT_FOUND;
|
||||
}
|
||||
ReleaseAttributeContext(DataContext);
|
||||
}
|
||||
|
||||
Status = NtfsMakeFCBFromDirEntry(Vcb, DirectoryFcb, &File, Colon, FileRecord, MFTIndex, FoundFCB);
|
||||
ExFreePoolWithTag(FileRecord, TAG_NTFS);
|
||||
|
||||
|
|
Loading…
Reference in a new issue