mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-02-04 17:05:23 -05:00
Fix wrong DACL memory size on Windows (createWindowsDACL) (#10712)
Each AddAccessAllowedAce invocation should be matched with a corresponding sizeof(ACCESS_ALLOWED_ACE) and the respective GetLengthSid of the SID being used. This ensures that there is enough space in the ACL for each entry. The issue manifest itself only when WITH_XC_SSHAGENT is defined.
This commit is contained in:
parent
388b4a736a
commit
6e362ee637
@ -180,7 +180,8 @@ namespace Bootstrap
|
|||||||
|
|
||||||
// Calculate the amount of memory that must be allocated for the DACL
|
// Calculate the amount of memory that must be allocated for the DACL
|
||||||
cbACL = sizeof(ACL) + sizeof(ACCESS_ALLOWED_ACE) + GetLengthSid(pTokenUser->User.Sid)
|
cbACL = sizeof(ACL) + sizeof(ACCESS_ALLOWED_ACE) + GetLengthSid(pTokenUser->User.Sid)
|
||||||
+ sizeof(ACCESS_ALLOWED_ACE) + GetLengthSid(pLocalSystemSid) + GetLengthSid(pOwnerRightsSid);
|
+ sizeof(ACCESS_ALLOWED_ACE) + GetLengthSid(pLocalSystemSid) + sizeof(ACCESS_ALLOWED_ACE)
|
||||||
|
+ GetLengthSid(pOwnerRightsSid);
|
||||||
|
|
||||||
// Create and initialize an ACL
|
// Create and initialize an ACL
|
||||||
pACL = static_cast<PACL>(HeapAlloc(GetProcessHeap(), 0, cbACL));
|
pACL = static_cast<PACL>(HeapAlloc(GetProcessHeap(), 0, cbACL));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user