summaryrefslogtreecommitdiff
path: root/source3/nsswitch/idmap_util.c
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2007-04-19 22:26:09 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:19:30 -0500
commit36da6cb5847df2754e8f9223e0784da6013c572b (patch)
treee0c3e6fe06c658ddae8f0d947482e0bdb3657e6c /source3/nsswitch/idmap_util.c
parentdc90cd89a7fef3b0a744ef1873193cf2c9d75cad (diff)
downloadsamba-36da6cb5847df2754e8f9223e0784da6013c572b.tar.gz
samba-36da6cb5847df2754e8f9223e0784da6013c572b.tar.bz2
samba-36da6cb5847df2754e8f9223e0784da6013c572b.zip
r22390: Patchset sent to samba-technical to address the winbind
loop when allocating a new id for a SID: auth_util.patch Revert create_local_token() to the 3.0.24 codebase idmap_type.patch Have the caller fillin the id_map.xid.type field when resolving a SID so that if we allocate a new id, we know what type to use winbindd_api.patch Remove the WINBINDD_SIDS_TO_XIDS calls from the public winbindd interface for the 3.0.25 release idmap_rid.patch Cleanup the idmap_rid backend to not call back into winbindd to resolve the SID in order to verify it's type. (This used to be commit 3b24dae9e73b244540a68b631b428a4d0f57440b)
Diffstat (limited to 'source3/nsswitch/idmap_util.c')
-rw-r--r--source3/nsswitch/idmap_util.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/source3/nsswitch/idmap_util.c b/source3/nsswitch/idmap_util.c
index 540dafaa73..40a5fb854b 100644
--- a/source3/nsswitch/idmap_util.c
+++ b/source3/nsswitch/idmap_util.c
@@ -105,18 +105,24 @@ NTSTATUS idmap_sid_to_uid(DOM_SID *sid, uid_t *uid)
DEBUG(10,("idmap_sid_to_uid: sid = [%s]\n", sid_string_static(sid)));
map.sid = sid;
+ map.xid.type = ID_TYPE_UID;
maps[0] = &map;
maps[1] = NULL;
ret = idmap_sids_to_unixids(maps);
if ( ! NT_STATUS_IS_OK(ret)) {
- DEBUG(10, ("error mapping sid [%s] to uid\n", sid_string_static(sid)));
+ DEBUG(10, ("error mapping sid [%s] to uid\n",
+ sid_string_static(sid)));
return ret;
}
if ((map.status != ID_MAPPED) || (map.xid.type != ID_TYPE_UID)) {
- DEBUG(10, ("sid [%s] not mapped to an uid [%u,%u,%u]\n", sid_string_static(sid), map.status, map.xid.type, map.xid.id));
+ DEBUG(10, ("sid [%s] not mapped to an uid [%u,%u,%u]\n",
+ sid_string_static(sid),
+ map.status,
+ map.xid.type,
+ map.xid.id));
return NT_STATUS_NONE_MAPPED;
}
@@ -139,18 +145,24 @@ NTSTATUS idmap_sid_to_gid(DOM_SID *sid, gid_t *gid)
DEBUG(10,("idmap_sid_to_gid: sid = [%s]\n", sid_string_static(sid)));
map.sid = sid;
+ map.xid.type = ID_TYPE_GID;
maps[0] = &map;
maps[1] = NULL;
ret = idmap_sids_to_unixids(maps);
if ( ! NT_STATUS_IS_OK(ret)) {
- DEBUG(10, ("error mapping sid [%s] to gid\n", sid_string_static(sid)));
+ DEBUG(10, ("error mapping sid [%s] to gid\n",
+ sid_string_static(sid)));
return ret;
}
if ((map.status != ID_MAPPED) || (map.xid.type != ID_TYPE_GID)) {
- DEBUG(10, ("sid [%s] not mapped to an gid [%u,%u,%u]\n", sid_string_static(sid), map.status, map.xid.type, map.xid.id));
+ DEBUG(10, ("sid [%s] not mapped to an gid [%u,%u,%u]\n",
+ sid_string_static(sid),
+ map.status,
+ map.xid.type,
+ map.xid.id));
return NT_STATUS_NONE_MAPPED;
}