[FASTFAT]
authorThomas Faber <thomas.faber@reactos.org>
Sun, 29 Nov 2015 18:43:50 +0000 (18:43 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Sun, 29 Nov 2015 18:43:50 +0000 (18:43 +0000)
- Fail attempts to open files relative to the volume

svn path=/trunk/; revision=70208

reactos/drivers/filesystems/fastfat/create.c

index ee6d310..7e8c718 100644 (file)
@@ -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);