From 774ff48872b4e7dc8fee5081eac7a776c9099c69 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Sun, 29 Nov 2015 18:43:50 +0000 Subject: [PATCH] [FASTFAT] - Fail attempts to open files relative to the volume svn path=/trunk/; revision=70208 --- reactos/drivers/filesystems/fastfat/create.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/reactos/drivers/filesystems/fastfat/create.c b/reactos/drivers/filesystems/fastfat/create.c index ee6d310faad..7e8c71852d7 100644 --- a/reactos/drivers/filesystems/fastfat/create.c +++ b/reactos/drivers/filesystems/fastfat/create.c @@ -492,7 +492,9 @@ VfatCreateFile( /* This a open operation for the volume itself */ if (FileObject->FileName.Length == 0 && - (FileObject->RelatedFileObject == NULL || FileObject->RelatedFileObject->FsContext2 != NULL)) + (FileObject->RelatedFileObject == NULL || + FileObject->RelatedFileObject->FsContext2 != NULL || + FileObject->RelatedFileObject->FsContext == DeviceExt->VolumeFcb)) { DPRINT("Volume opening\n"); @@ -544,6 +546,13 @@ VfatCreateFile( return STATUS_SUCCESS; } + if (FileObject->RelatedFileObject != NULL && + FileObject->RelatedFileObject->FsContext == DeviceExt->VolumeFcb) + { + ASSERT(FileObject->FileName.Length != 0); + return STATUS_OBJECT_PATH_NOT_FOUND; + } + /* Check for illegal characters and illegale dot sequences in the file name */ PathNameU = FileObject->FileName; c = PathNameU.Buffer + PathNameU.Length / sizeof(WCHAR);