svn commit: samba r6566 - in branches/SAMBA_3_0/source: nsswitch rpc_server

jerry at samba.org jerry at samba.org
Sun May 1 20:05:17 GMT 2005


Author: jerry
Date: 2005-05-01 20:05:16 +0000 (Sun, 01 May 2005)
New Revision: 6566

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=6566

Log:
fix a couple of local group bugs.

* ensure that we set full access on the handle
  returned from _samr_create_dom_alias() so that
  future set_alias commands succeed

* fix bug when looking for internal domains in winbindd
  (caused winbindd_getgrgid() for local groups to fail).


Modified:
   branches/SAMBA_3_0/source/nsswitch/winbindd_util.c
   branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c


Changeset:
Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_util.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/winbindd_util.c	2005-05-01 19:29:00 UTC (rev 6565)
+++ branches/SAMBA_3_0/source/nsswitch/winbindd_util.c	2005-05-01 20:05:16 UTC (rev 6566)
@@ -91,7 +91,12 @@
 	if (sid == NULL)
 		return False;
 
-	return (sid_check_is_domain(sid) || sid_check_is_builtin(sid));
+	if ( sid_compare_domain( sid, get_global_sam_sid() ) == 0 )
+		return True;
+	if ( sid_compare_domain( sid, &global_sid_Builtin ) == 0 )
+		return True;
+
+	return False;
 }
 
 

Modified: branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c
===================================================================
--- branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c	2005-05-01 19:29:00 UTC (rev 6565)
+++ branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c	2005-05-01 20:05:16 UTC (rev 6566)
@@ -730,10 +730,7 @@
 	struct samr_displayentry *aliases;
 	struct pdb_search **search = NULL;
 	uint32 num_aliases = 0;
-	NTSTATUS status;
 
-	r_u->status = NT_STATUS_OK;
-
 	/* find the policy handle.  open a policy on it. */
 	if (!find_policy_by_hnd(p, &q_u->pol, (void **)&info))
 		return NT_STATUS_INVALID_HANDLE;
@@ -752,14 +749,16 @@
 	if (sid_check_is_builtin(&info->sid))
 		search = &info->disp_info.builtins;
 
-	if (search == NULL) return NT_STATUS_INVALID_HANDLE;
+	if (search == NULL) 
+		return NT_STATUS_INVALID_HANDLE;
 
 	become_root();
 	if (*search == NULL)
 		*search = pdb_search_aliases(&info->sid);
 	unbecome_root();
 
-	if (*search == NULL) return NT_STATUS_ACCESS_DENIED;
+	if (*search == NULL) 
+		return NT_STATUS_ACCESS_DENIED;
 
 	become_root();
 	num_aliases = pdb_search_entries(*search, q_u->start_idx,
@@ -769,8 +768,6 @@
 	make_group_sam_entry_list(p->mem_ctx, &r_u->sam, &r_u->uni_grp_name,
 				  num_aliases, aliases);
 
-	if (!NT_STATUS_IS_OK(status)) return status;
-
 	init_samr_r_enum_dom_aliases(r_u, q_u->start_idx + num_aliases,
 				     num_aliases);
 
@@ -3850,6 +3847,10 @@
 	if ((info = get_samr_info_by_sid(&info_sid)) == NULL)
 		return NT_STATUS_NO_MEMORY;
 
+	/* they created it; let the user do what he wants with it */
+
+	info->acc_granted = GENERIC_RIGHTS_ALIAS_ALL_ACCESS;
+
 	/* get a (unique) handle.  open a policy on it. */
 	if (!create_policy_hnd(p, &r_u->alias_pol, free_samr_info, (void *)info))
 		return NT_STATUS_OBJECT_NAME_NOT_FOUND;



More information about the samba-cvs mailing list