mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-22 08:23:05 -05:00
dll: FspAccessCheckEx: fix #190
This commit is contained in:
parent
0de00e872f
commit
a292cd4d73
@ -341,26 +341,25 @@ FSP_API NTSTATUS FspAccessCheckEx(FSP_FILE_SYSTEM *FileSystem,
|
|||||||
|
|
||||||
if (Request->Req.Create.UserMode)
|
if (Request->Req.Create.UserMode)
|
||||||
{
|
{
|
||||||
if (0 != (FileAttributes & FILE_ATTRIBUTE_READONLY))
|
if (FILE_ATTRIBUTE_READONLY == (FileAttributes & (FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_DIRECTORY)) &&
|
||||||
|
(DesiredAccess & (FILE_WRITE_DATA | FILE_APPEND_DATA | FILE_ADD_SUBDIRECTORY | FILE_DELETE_CHILD)))
|
||||||
{
|
{
|
||||||
if (DesiredAccess &
|
Result = STATUS_ACCESS_DENIED;
|
||||||
(FILE_WRITE_DATA | FILE_APPEND_DATA | FILE_ADD_SUBDIRECTORY | FILE_DELETE_CHILD))
|
goto exit;
|
||||||
{
|
}
|
||||||
Result = STATUS_ACCESS_DENIED;
|
|
||||||
goto exit;
|
if (FILE_ATTRIBUTE_READONLY == (FileAttributes & FILE_ATTRIBUTE_READONLY) &&
|
||||||
}
|
Request->Req.Create.CreateOptions & FILE_DELETE_ON_CLOSE)
|
||||||
if (Request->Req.Create.CreateOptions & FILE_DELETE_ON_CLOSE)
|
{
|
||||||
{
|
Result = STATUS_CANNOT_DELETE;
|
||||||
Result = STATUS_CANNOT_DELETE;
|
goto exit;
|
||||||
goto exit;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (0 == SecurityDescriptorSize)
|
if (0 == SecurityDescriptorSize)
|
||||||
*PGrantedAccess = (MAXIMUM_ALLOWED & DesiredAccess) ?
|
*PGrantedAccess = (MAXIMUM_ALLOWED & DesiredAccess) ?
|
||||||
FspFileGenericMapping.GenericAll : DesiredAccess;
|
FspFileGenericMapping.GenericAll : DesiredAccess;
|
||||||
|
|
||||||
if (0 != (FileAttributes & FILE_ATTRIBUTE_READONLY) &&
|
if (FILE_ATTRIBUTE_READONLY == (FileAttributes & (FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_DIRECTORY)) &&
|
||||||
0 != (MAXIMUM_ALLOWED & DesiredAccess))
|
0 != (MAXIMUM_ALLOWED & DesiredAccess))
|
||||||
*PGrantedAccess &= ~(FILE_WRITE_DATA | FILE_APPEND_DATA |
|
*PGrantedAccess &= ~(FILE_WRITE_DATA | FILE_APPEND_DATA |
|
||||||
FILE_ADD_SUBDIRECTORY | FILE_DELETE_CHILD);
|
FILE_ADD_SUBDIRECTORY | FILE_DELETE_CHILD);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user