mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-22 16:33:02 -05:00
sys: disallow creating a ReadOnly and DeleteOnClose file
This commit is contained in:
parent
33e8b5df04
commit
3adcf70748
@ -189,9 +189,13 @@ NTSTATUS FspFileSystemCreateCheck(FSP_FILE_SYSTEM *FileSystem,
|
|||||||
ParentDesiredAccess = FILE_ADD_SUBDIRECTORY;
|
ParentDesiredAccess = FILE_ADD_SUBDIRECTORY;
|
||||||
else
|
else
|
||||||
ParentDesiredAccess = FILE_ADD_FILE;
|
ParentDesiredAccess = FILE_ADD_FILE;
|
||||||
Result = FspAccessCheckEx(FileSystem, Request, TRUE, AllowTraverseCheck,
|
if ((Request->Req.Create.FileAttributes & FILE_ATTRIBUTE_READONLY) &&
|
||||||
ParentDesiredAccess,
|
(Request->Req.Create.CreateOptions & FILE_DELETE_ON_CLOSE))
|
||||||
&GrantedAccess, PSecurityDescriptor);
|
Result = STATUS_CANNOT_DELETE;
|
||||||
|
else
|
||||||
|
Result = FspAccessCheckEx(FileSystem, Request, TRUE, AllowTraverseCheck,
|
||||||
|
ParentDesiredAccess,
|
||||||
|
&GrantedAccess, PSecurityDescriptor);
|
||||||
if (STATUS_REPARSE == Result)
|
if (STATUS_REPARSE == Result)
|
||||||
Result = FspFileSystemCallResolveReparsePoints(FileSystem, Request, Response, GrantedAccess);
|
Result = FspFileSystemCallResolveReparsePoints(FileSystem, Request, Response, GrantedAccess);
|
||||||
else if (NT_SUCCESS(Result))
|
else if (NT_SUCCESS(Result))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user