mirror of
https://github.com/samba-team/samba.git
synced 2025-11-14 12:23:52 +03:00
syncing up with HEAD. Seems to be a lot of differences creeping in
(i ignored the new SAMBA stuff, but the rest of this looks like it should have been merged already).
This commit is contained in:
@@ -34,6 +34,7 @@ DOM_SID global_sid_World_Domain; /* Everyone domain */
|
||||
DOM_SID global_sid_World; /* Everyone */
|
||||
DOM_SID global_sid_Creator_Owner_Domain; /* Creator Owner domain */
|
||||
DOM_SID global_sid_NT_Authority; /* NT Authority */
|
||||
DOM_SID global_sid_System; /* System */
|
||||
DOM_SID global_sid_NULL; /* NULL sid */
|
||||
DOM_SID global_sid_Authenticated_Users; /* All authenticated rids */
|
||||
DOM_SID global_sid_Network; /* Network rids */
|
||||
@@ -58,6 +59,12 @@ NT_USER_TOKEN anonymous_token = {
|
||||
anon_sid_array
|
||||
};
|
||||
|
||||
static DOM_SID system_sid_array[4];
|
||||
NT_USER_TOKEN system_token = {
|
||||
1,
|
||||
system_sid_array
|
||||
};
|
||||
|
||||
/****************************************************************************
|
||||
Lookup string names for SID types.
|
||||
****************************************************************************/
|
||||
@@ -101,6 +108,10 @@ const char *sid_type_lookup(uint32 sid_type)
|
||||
|
||||
void generate_wellknown_sids(void)
|
||||
{
|
||||
static BOOL initialised = False;
|
||||
if (initialised)
|
||||
return;
|
||||
|
||||
string_to_sid(&global_sid_Builtin, "S-1-5-32");
|
||||
string_to_sid(&global_sid_Builtin_Administrators, "S-1-5-32-544");
|
||||
string_to_sid(&global_sid_Builtin_Users, "S-1-5-32-545");
|
||||
@@ -111,6 +122,7 @@ void generate_wellknown_sids(void)
|
||||
string_to_sid(&global_sid_Creator_Owner, "S-1-3-0");
|
||||
string_to_sid(&global_sid_Creator_Group, "S-1-3-1");
|
||||
string_to_sid(&global_sid_NT_Authority, "S-1-5");
|
||||
string_to_sid(&global_sid_System, "S-1-5-18");
|
||||
string_to_sid(&global_sid_NULL, "S-1-0-0");
|
||||
string_to_sid(&global_sid_Authenticated_Users, "S-1-5-11");
|
||||
string_to_sid(&global_sid_Network, "S-1-5-2");
|
||||
@@ -120,6 +132,17 @@ void generate_wellknown_sids(void)
|
||||
sid_copy( &anonymous_token.user_sids[0], &global_sid_World);
|
||||
sid_copy( &anonymous_token.user_sids[1], &global_sid_Network);
|
||||
sid_copy( &anonymous_token.user_sids[2], &global_sid_Anonymous);
|
||||
|
||||
/* Create the system token. */
|
||||
sid_copy( &system_token.user_sids[0], &global_sid_System);
|
||||
|
||||
initialised = True;
|
||||
}
|
||||
|
||||
NT_USER_TOKEN *get_system_token(void)
|
||||
{
|
||||
generate_wellknown_sids(); /* The token is initialised here */
|
||||
return &system_token;
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
@@ -347,7 +370,7 @@ void sid_copy(DOM_SID *dst, const DOM_SID *src)
|
||||
/*****************************************************************
|
||||
Write a sid out into on-the-wire format.
|
||||
*****************************************************************/
|
||||
BOOL sid_linearize(char *outbuf, size_t len, DOM_SID *sid)
|
||||
BOOL sid_linearize(char *outbuf, size_t len, const DOM_SID *sid)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
@@ -366,7 +389,7 @@ BOOL sid_linearize(char *outbuf, size_t len, DOM_SID *sid)
|
||||
/*****************************************************************
|
||||
parse a on-the-wire SID to a DOM_SID
|
||||
*****************************************************************/
|
||||
BOOL sid_parse(char *inbuf, size_t len, DOM_SID *sid)
|
||||
BOOL sid_parse(const char *inbuf, size_t len, DOM_SID *sid)
|
||||
{
|
||||
int i;
|
||||
if (len < 8) return False;
|
||||
@@ -482,7 +505,7 @@ BOOL sid_check_is_in_builtin(const DOM_SID *sid)
|
||||
Calculates size of a sid.
|
||||
*****************************************************************/
|
||||
|
||||
size_t sid_size(DOM_SID *sid)
|
||||
size_t sid_size(const DOM_SID *sid)
|
||||
{
|
||||
if (sid == NULL)
|
||||
return 0;
|
||||
@@ -518,7 +541,7 @@ BOOL non_mappable_sid(DOM_SID *sid)
|
||||
return the binary string representation of a DOM_SID
|
||||
caller must free
|
||||
*/
|
||||
char *sid_binstring(DOM_SID *sid)
|
||||
char *sid_binstring(const DOM_SID *sid)
|
||||
{
|
||||
char *buf, *s;
|
||||
int len = sid_size(sid);
|
||||
|
||||
Reference in New Issue
Block a user