From b48750fba603f9e04b08e346744bcc9c6a49a1af Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 31 Jan 2002 09:37:26 +0000 Subject: this fixes the problem of not being able to add a SD to a file on a non-domain Samba server from a NT4 client. Note that this exactly reverses a change by Jeremy on the 18th of December 2001, reverting the code back to what JF originally wrote. I have looked carefully with a sniffer and JFs original NULL sid is correct (ie. it matches what NT4 does) and also fixes the problem. Sending a blank sid (which is what jeremy's patch did) causes NT4 to give a classic "parameter is incorrect error" and prevents the addition of new ACLs. (This used to be commit 9930cf97330dd93985c5558cec6b24406e90c228) --- source3/lib/util_sid.c | 2 -- source3/rpc_server/srv_lsa_nt.c | 3 +-- 2 files changed, 1 insertion(+), 4 deletions(-) (limited to 'source3') diff --git a/source3/lib/util_sid.c b/source3/lib/util_sid.c index d4f8abb089..436f045e97 100644 --- a/source3/lib/util_sid.c +++ b/source3/lib/util_sid.c @@ -41,7 +41,6 @@ DOM_SID global_sid_Builtin_Guests; /* Builtin guest users */ DOM_SID global_sid_Authenticated_Users; /* All authenticated rids */ DOM_SID global_sid_Network; /* Network rids */ DOM_SID global_sid_Anonymous; /* Anonymous login */ -DOM_SID global_sid_nonexistent; /* S-0-0. Used in Lsa level 3. */ const DOM_SID *global_sid_everyone = &global_sid_World; @@ -182,7 +181,6 @@ void generate_wellknown_sids(void) string_to_sid(&global_sid_Authenticated_Users, "S-1-5-11"); string_to_sid(&global_sid_Network, "S-1-5-2"); string_to_sid(&global_sid_Anonymous, "S-1-5-7"); - string_to_sid(&global_sid_nonexistent, "S-0-0"); /* Used in Lsa level 3. */ /* Create the anon token. */ sid_copy( &anonymous_token.user_sids[0], &global_sid_World); diff --git a/source3/rpc_server/srv_lsa_nt.c b/source3/rpc_server/srv_lsa_nt.c index 97361cab4c..c044340456 100644 --- a/source3/rpc_server/srv_lsa_nt.c +++ b/source3/rpc_server/srv_lsa_nt.c @@ -441,7 +441,6 @@ NTSTATUS _lsa_enum_trust_dom(pipes_struct *p, LSA_Q_ENUM_TRUST_DOM *q_u, LSA_R_E NTSTATUS _lsa_query_info(pipes_struct *p, LSA_Q_QUERY_INFO *q_u, LSA_R_QUERY_INFO *r_u) { - extern DOM_SID global_sid_nonexistent; struct lsa_info *handle; LSA_INFO_UNION *info = &r_u->dom; DOM_SID domain_sid; @@ -494,7 +493,7 @@ NTSTATUS _lsa_query_info(pipes_struct *p, LSA_Q_QUERY_INFO *q_u, LSA_R_QUERY_INF break; case ROLE_STANDALONE: name = global_myworkgroup; - sid = &global_sid_nonexistent; + sid = NULL; break; default: return NT_STATUS_CANT_ACCESS_DOMAIN_INFO; -- cgit