summaryrefslogtreecommitdiff
path: root/source3/passdb/pdb_interface.c
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2006-03-15 17:40:28 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 11:15:31 -0500
commit41a0da4cfc3e0bb37b81ea22fc2eb15aa89298e1 (patch)
tree5612ee2ec5ee5513c9ee75d04d143465c5e91a74 /source3/passdb/pdb_interface.c
parentc17e40be33322049c3a12915790b8a149eb8c10e (diff)
downloadsamba-41a0da4cfc3e0bb37b81ea22fc2eb15aa89298e1.tar.gz
samba-41a0da4cfc3e0bb37b81ea22fc2eb15aa89298e1.tar.bz2
samba-41a0da4cfc3e0bb37b81ea22fc2eb15aa89298e1.zip
r14457: Add a few more special cases for RID 513 in the samr code.
Now that I know what all the requirements for this group are I can generalize the code some more and make it cleaner. But at least this is working with lusrmgr.msc on XP and 2k now. (This used to be commit d2c1842978cd50485849bfc4fb6d94767d96cab0)
Diffstat (limited to 'source3/passdb/pdb_interface.c')
-rw-r--r--source3/passdb/pdb_interface.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/source3/passdb/pdb_interface.c b/source3/passdb/pdb_interface.c
index 4061e7b5db..82890fee2d 100644
--- a/source3/passdb/pdb_interface.c
+++ b/source3/passdb/pdb_interface.c
@@ -734,13 +734,31 @@ NTSTATUS pdb_enum_group_members(TALLOC_CTX *mem_ctx,
size_t *p_num_members)
{
struct pdb_methods *pdb = pdb_get_methods();
+ NTSTATUS result;
if ( !pdb ) {
return NT_STATUS_UNSUCCESSFUL;
}
- return pdb->enum_group_members(pdb, mem_ctx, sid,
- pp_member_rids, p_num_members);
+ result = pdb->enum_group_members(pdb, mem_ctx,
+ sid, pp_member_rids, p_num_members);
+
+ /* special check for rid 513 */
+
+ if ( !NT_STATUS_IS_OK( result ) ) {
+ uint32 rid;
+
+ sid_peek_rid( sid, &rid );
+
+ if ( rid == DOMAIN_GROUP_RID_USERS ) {
+ *p_num_members = 0;
+ *pp_member_rids = NULL;
+
+ return NT_STATUS_OK;
+ }
+ }
+
+ return result;
}
NTSTATUS pdb_enum_group_memberships(TALLOC_CTX *mem_ctx, struct samu *user,