[USETUP] When opening the target file for dropping readonly mode only use required...
authorPierre Schweitzer <pierre@reactos.org>
Sat, 6 Jan 2018 11:11:02 +0000 (12:11 +0100)
committerPierre Schweitzer <pierre@reactos.org>
Sat, 6 Jan 2018 11:11:02 +0000 (12:11 +0100)
This avoids the open failing on certain file systems where GENERIC_WRITE access would be denied
for a readonly file.
This is an addendum to 82f44a2.

CORE-14158

base/setup/usetup/filesup.c

index 65a372a..4238557 100644 (file)
@@ -355,9 +355,9 @@ SetupCopyFile(
         {
             FILE_BASIC_INFORMATION FileBasicInfo;
 
-            /* Reattempt to open it */
+            /* Reattempt to open it with limited access */
             Status = NtCreateFile(&FileHandleDest,
-                                  GENERIC_WRITE | SYNCHRONIZE,
+                                  FILE_WRITE_ATTRIBUTES | SYNCHRONIZE,
                                   &ObjectAttributes,
                                   &IoStatusBlock,
                                   NULL,
@@ -369,10 +369,7 @@ SetupCopyFile(
                                   FILE_SYNCHRONOUS_IO_NONALERT,
                                   NULL,
                                   0);
-            /* Fail for real if we cannot open it that way
-             * XXX: actually, we should try to refine access rights
-             * to only have write_attributes, should be enough
-             */
+            /* Fail for real if we cannot open it that way */
             if (!NT_SUCCESS(Status))
             {
                 DPRINT1("NtCreateFile failed: %x, %wZ\n", Status, &FileName);