Skip to content

Commit

Permalink
examples:winexe: Fully initialize EXPLICIT_ACCESS
Browse files Browse the repository at this point in the history
"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 <[email protected]>
Reviewed-by: Alexander Bokovoy <[email protected]>
  • Loading branch information
cryptomilk committed Jul 18, 2024
1 parent 2e1ac4b commit a39cb60
Showing 1 changed file with 14 additions and 10 deletions.
24 changes: 14 additions & 10 deletions examples/winexe/winexesvc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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. */
Expand All @@ -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);
Expand Down

0 comments on commit a39cb60

Please sign in to comment.