mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-23 00:43:00 -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 */
|
/* set up the AccessState */
|
||||||
AccessState->RemainingDesiredAccess = 0;
|
AccessState->RemainingDesiredAccess = 0;
|
||||||
AccessState->PreviouslyGrantedAccess = Response->Rsp.Create.Opened.GrantedAccess;
|
AccessState->PreviouslyGrantedAccess = Response->Rsp.Create.Opened.GrantedAccess;
|
||||||
|
FileDesc->GrantedAccess = Response->Rsp.Create.Opened.GrantedAccess;
|
||||||
|
|
||||||
/* set up the FileObject */
|
/* set up the FileObject */
|
||||||
if (0 != FsvolDeviceExtension->FsvrtDeviceObject)
|
if (0 != FsvolDeviceExtension->FsvrtDeviceObject)
|
||||||
|
@ -1218,6 +1218,7 @@ typedef struct
|
|||||||
{
|
{
|
||||||
FSP_FILE_NODE *FileNode;
|
FSP_FILE_NODE *FileNode;
|
||||||
UINT64 UserContext2;
|
UINT64 UserContext2;
|
||||||
|
UINT32 GrantedAccess;
|
||||||
UINT32
|
UINT32
|
||||||
CaseSensitive:1, HasTraversePrivilege:1, DeleteOnClose:1,
|
CaseSensitive:1, HasTraversePrivilege:1, DeleteOnClose:1,
|
||||||
DidSetMetadata:1,
|
DidSetMetadata:1,
|
||||||
|
@ -148,6 +148,11 @@ static NTSTATUS FspFsvolFileSystemControlReparsePoint(
|
|||||||
if (!NT_SUCCESS(Result))
|
if (!NT_SUCCESS(Result))
|
||||||
return 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;
|
ReparseData = (PREPARSE_DATA_BUFFER)InputBuffer;
|
||||||
|
|
||||||
if (IO_REPARSE_TAG_SYMLINK == ReparseData->ReparseTag)
|
if (IO_REPARSE_TAG_SYMLINK == ReparseData->ReparseTag)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user