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