1
0
mirror of https://github.com/winfsp/winfsp.git synced 2026-06-26 06:18:21 -05:00

sys: fix issue #364

This commit is contained in:
Bill Zissimopoulos
2021-04-16 16:43:34 -07:00
parent d0d67998c1
commit 33c6e7ee61
4 changed files with 64 additions and 4 deletions
+14 -1
View File
@@ -1051,8 +1051,21 @@ NTSTATUS FspFsvolCreateComplete(
}
/* open the FileNode */
UINT32 AdditionalGrantedAccess = 0;
switch ((IrpSp->Parameters.Create.Options >> 24) & 0xff)
{
case FILE_OVERWRITE: case FILE_OVERWRITE_IF:
/* Additional granted access for share check. Fixes GitHub issue #364. */
AdditionalGrantedAccess = FILE_WRITE_DATA;
break;
case FILE_SUPERSEDE:
/* Additional granted access for share check. Fixes GitHub issue #364. */
AdditionalGrantedAccess = DELETE;
break;
}
Result = FspFileNodeOpen(FileNode, FileObject,
Response->Rsp.Create.Opened.GrantedAccess, IrpSp->Parameters.Create.ShareAccess,
Response->Rsp.Create.Opened.GrantedAccess, AdditionalGrantedAccess,
IrpSp->Parameters.Create.ShareAccess,
&OpenedFileNode, &SharingViolationReason);
if (!NT_SUCCESS(Result))
{