NTSTATUS privilege_enumerate_accounts(struct dom_sid **sids, int *num_sids);
NTSTATUS privilege_enum_sids(const uint64_t *mask, TALLOC_CTX *mem_ctx,
struct dom_sid **sids, int *num_sids);
-bool grant_privilege(const struct dom_sid *sid, const uint64_t *priv_mask);
+bool grant_privilege(const struct dom_sid *sid, const uint64_t priv_mask);
bool grant_privilege_by_name(struct dom_sid *sid, const char *name);
bool revoke_privilege(const struct dom_sid *sid, const uint64_t priv_mask);
bool revoke_all_privileges( struct dom_sid *sid );
Add privilege to sid
****************************************************************************/
-bool grant_privilege(const struct dom_sid *sid, const uint64_t *priv_mask)
+bool grant_privilege(const struct dom_sid *sid, const uint64_t priv_mask)
{
uint64_t old_mask, new_mask;
ZERO_STRUCT( new_mask );
if ( get_privileges( sid, &old_mask ) )
- se_priv_copy( &new_mask, &old_mask );
+ new_mask = old_mask;
else
- se_priv_copy( &new_mask, &se_priv_none );
+ new_mask = 0;
- se_priv_add( &new_mask, priv_mask );
+ new_mask |= priv_mask;
DEBUG(10,("grant_privilege: %s\n", sid_string_dbg(sid)));
return False;
}
- return grant_privilege( sid, &mask );
+ return grant_privilege( sid, mask );
}
/***************************************************************************
NTSTATUS privilege_create_account(const struct dom_sid *sid )
{
- return ( grant_privilege(sid, &se_priv_none) ? NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL);
+ return ( grant_privilege(sid, 0) ? NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL);
}
/***************************************************************************
return False;
}
- return grant_privilege( sid, &mask );
+ return grant_privilege( sid, mask );
}
if ( !privilege_set_to_se_priv( &mask, set ) )
return NT_STATUS_NO_SUCH_PRIVILEGE;
- if ( !grant_privilege( &info->sid, &mask ) ) {
+ if ( !grant_privilege( &info->sid, mask ) ) {
DEBUG(3,("_lsa_AddPrivilegesToAccount: grant_privilege(%s) failed!\n",
sid_string_dbg(&info->sid) ));
DEBUG(3,("Privilege mask: 0x%llx\n", (unsigned long long)mask));