mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-22 16:33:02 -05:00
src: dll: FspFsctlFixServiceSecurity
- fix GetEffectiveRightsFromAclW ERROR_CIRCULAR_DEPENDENCY
This commit is contained in:
parent
8bb46a5f86
commit
5d8384a508
@ -355,10 +355,18 @@ static NTSTATUS FspFsctlFixServiceSecurity(HANDLE SvcHandle)
|
|||||||
{
|
{
|
||||||
LastError = GetEffectiveRightsFromAclW(Dacl, &AccessEntry.Trustee, &AccessRights);
|
LastError = GetEffectiveRightsFromAclW(Dacl, &AccessEntry.Trustee, &AccessRights);
|
||||||
if (0 != LastError)
|
if (0 != LastError)
|
||||||
{
|
/*
|
||||||
Result = FspNtStatusFromWin32(LastError);
|
* Apparently GetEffectiveRightsFromAclW can fail with ERROR_CIRCULAR_DEPENDENCY
|
||||||
goto exit;
|
* in some rare circumstances. Calling GetEffectiveRightsFromAclW is not essential
|
||||||
}
|
* in this instance. It is only done to check whether the "Everyone/World" SID
|
||||||
|
* already has the access required to start the FSD; if it does not have those
|
||||||
|
* rights already they are added. It is probably safe to just assume that the
|
||||||
|
* required rights are not there if GetEffectiveRightsFromAclW fails; the worst
|
||||||
|
* that can happen is that the rights get added twice (which is benign).
|
||||||
|
*
|
||||||
|
* See https://github.com/billziss-gh/winfsp/issues/62
|
||||||
|
*/
|
||||||
|
AccessRights = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* do we have the required access rights? */
|
/* do we have the required access rights? */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user