mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-22 16:33:02 -05:00
sys: FspFsvolFileSystemControlReparsePoint: STATUS_ACCESS_DENIED
This commit is contained in:
parent
6b37e2ef12
commit
830985d331
@ -897,6 +897,7 @@ NTSTATUS FspFsvolCreateComplete(
|
||||
/* set up the AccessState */
|
||||
AccessState->RemainingDesiredAccess = 0;
|
||||
AccessState->PreviouslyGrantedAccess = Response->Rsp.Create.Opened.GrantedAccess;
|
||||
FileDesc->GrantedAccess = Response->Rsp.Create.Opened.GrantedAccess;
|
||||
|
||||
/* set up the FileObject */
|
||||
if (0 != FsvolDeviceExtension->FsvrtDeviceObject)
|
||||
|
@ -1218,6 +1218,7 @@ typedef struct
|
||||
{
|
||||
FSP_FILE_NODE *FileNode;
|
||||
UINT64 UserContext2;
|
||||
UINT32 GrantedAccess;
|
||||
UINT32
|
||||
CaseSensitive:1, HasTraversePrivilege:1, DeleteOnClose:1,
|
||||
DidSetMetadata:1,
|
||||
|
@ -148,6 +148,11 @@ static NTSTATUS FspFsvolFileSystemControlReparsePoint(
|
||||
if (!NT_SUCCESS(Result))
|
||||
return Result;
|
||||
|
||||
/* NTFS seems to require one of these rights to allow FSCTL_SET_REPARSE_POINT */
|
||||
if (!FlagOn(FileDesc->GrantedAccess,
|
||||
FILE_WRITE_DATA | FILE_APPEND_DATA | FILE_WRITE_ATTRIBUTES))
|
||||
return STATUS_ACCESS_DENIED;
|
||||
|
||||
ReparseData = (PREPARSE_DATA_BUFFER)InputBuffer;
|
||||
|
||||
if (IO_REPARSE_TAG_SYMLINK == ReparseData->ReparseTag)
|
||||
|
Loading…
x
Reference in New Issue
Block a user