1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00

examples:winexe: Fully initialize EXPLICIT_ACCESS

"Error: UNINIT (CWE-457):
samba-4.20.0rc2/examples/winexe/winexesvc.c:60: var_decl: Declaring variable ""ea"" without initializer.
samba-4.20.0rc2/examples/winexe/winexesvc.c:86: uninit_use_in_call: Using uninitialized value ""ea"". Field ""ea.Trustee.pMultipleTrustee"" is uninitialized when calling ""SetEntriesInAclA"".
   84|
   85|   	/* Create a new ACL that contains the new ACEs */
   86|-> 	dwRes = SetEntriesInAcl(1, &ea, NULL, &pACL);
   87|   	if (ERROR_SUCCESS != dwRes) {
   88|   		dbg(""SetEntriesInAcl Error %lu\n"", GetLastError());"

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Alexander Bokovoy <ab@samba.org>
This commit is contained in:
Andreas Schneider 2024-07-16 10:45:53 +02:00 committed by Andreas Schneider
parent 2e1ac4bbf5
commit a39cb60c3f

View File

@ -57,7 +57,20 @@ static int CreatePipesSA()
PSID pAdminSID = NULL;
PACL pACL = NULL;
PSECURITY_DESCRIPTOR pSD = NULL;
EXPLICIT_ACCESS ea;
/*
* Initialize an EXPLICIT_ACCESS structure for an ACE.
* The ACE will allow the Administrators group full access to the key.
*/
EXPLICIT_ACCESS ea = {
.grfAccessPermissions = FILE_ALL_ACCESS,
.grfAccessMode = SET_ACCESS,
.grfInheritance = NO_INHERITANCE,
.Trustee = {
.TrusteeForm = TRUSTEE_IS_SID,
.TrusteeType = TRUSTEE_IS_GROUP,
.ptstrName = (LPTSTR)pAdminSID,
},
};
SID_IDENTIFIER_AUTHORITY SIDAuthNT = {SECURITY_NT_AUTHORITY};
/* Create a SID for the BUILTIN\Administrators group. */
@ -72,15 +85,6 @@ static int CreatePipesSA()
dbg("AllocateAndInitializeSid Error %lu\n", GetLastError());
return 0;
}
/* Initialize an EXPLICIT_ACCESS structure for an ACE.
The ACE will allow the Administrators group full access to the key.
*/
ea.grfAccessPermissions = FILE_ALL_ACCESS;
ea.grfAccessMode = SET_ACCESS;
ea.grfInheritance = NO_INHERITANCE;
ea.Trustee.TrusteeForm = TRUSTEE_IS_SID;
ea.Trustee.TrusteeType = TRUSTEE_IS_GROUP;
ea.Trustee.ptstrName = (LPTSTR) pAdminSID;
/* Create a new ACL that contains the new ACEs */
dwRes = SetEntriesInAcl(1, &ea, NULL, &pACL);