VirtualBox

Changeset 3504 in kBuild


Ignore:
Timestamp:
Dec 15, 2021 10:50:14 PM (3 years ago)
Author:
bird
Message:

ntunlink.c: Fixed deleteing read-only files. Respect the fReadOnlyToo parameter.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lib/nt/ntunlink.c

    r3388 r3504  
    6464        rcNt = g_pfnNtQueryInformationFile(hFile, &Ios, &BasicInfo, sizeof(BasicInfo), MyFileBasicInformation);
    6565
    66         if (MY_NT_SUCCESS(rcNt) && MY_NT_SUCCESS(Ios.u.Status) /*&& BasicInfo.FileAttributes != FILE_ATTRIBUTE_READONLY*/)
     66        if (MY_NT_SUCCESS(rcNt) && MY_NT_SUCCESS(Ios.u.Status) && BasicInfo.FileAttributes != FILE_ATTRIBUTE_READONLY)
    6767            dwAttr = BasicInfo.FileAttributes & ~FILE_ATTRIBUTE_READONLY;
    6868        else
     
    114114
    115115            /* In case some file system does things differently than NTFS. */
    116             if (rcNt == STATUS_CANNOT_DELETE)
     116            if (rcNt == STATUS_CANNOT_DELETE && fReadOnlyToo)
    117117            {
    118118                birdMakeWritable(hRoot, &NtPath);
     
    124124            /* Use the set information stuff. Probably more reliable. */
    125125            HANDLE hFile;
    126             int    fMayTryAgain = 1;
    127126            for (;;)
    128127            {
     
    150149                    birdCloseFile(hFile);
    151150                }
    152                 if (rcNt != STATUS_CANNOT_DELETE || !fMayTryAgain)
     151                if (rcNt != STATUS_CANNOT_DELETE || !fReadOnlyToo)
    153152                    break;
    154153
    155                 fMayTryAgain = 0;
     154                fReadOnlyToo = 0;
    156155                birdMakeWritable(hRoot, &NtPath);
    157156            }
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette