From c89bcbdf3f3654e87ae9e67c36dd8d41f9789a2e Mon Sep 17 00:00:00 2001 From: Garming Sam Date: Fri, 17 Oct 2014 16:39:57 +1300 Subject: [PATCH] Temporary fix for idmap issue Change-Id: Ie4826d8d9006697c4041888a7e81905f0838ff23 --- source3/passdb/pdb_interface.c | 16 ++++++++++------ source3/winbindd/idmap_util.c | 8 -------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/source3/passdb/pdb_interface.c b/source3/passdb/pdb_interface.c index ed42961..556b379 100644 --- a/source3/passdb/pdb_interface.c +++ b/source3/passdb/pdb_interface.c @@ -1212,10 +1212,12 @@ bool pdb_uid_to_sid(uid_t uid, struct dom_sid *sid) ret = pdb->uid_to_sid(pdb, uid, sid); if (ret == true) { + bool ret2; struct unixid id; - id.id = uid; - id.type = ID_TYPE_UID; - idmap_cache_set_sid2unixid(sid, &id); + ret2 = pdb->sid_to_id(pdb, sid, &id); + if (ret2 == true) { + idmap_cache_set_sid2unixid(sid, &id); + } } return ret; @@ -1229,10 +1231,12 @@ bool pdb_gid_to_sid(gid_t gid, struct dom_sid *sid) ret = pdb->gid_to_sid(pdb, gid, sid); if (ret == true) { + bool ret2; struct unixid id; - id.id = gid; - id.type = ID_TYPE_GID; - idmap_cache_set_sid2unixid(sid, &id); + ret2 = pdb->sid_to_id(pdb, sid, &id); + if (ret2 == true) { + idmap_cache_set_sid2unixid(sid, &id); + } } return ret; diff --git a/source3/winbindd/idmap_util.c b/source3/winbindd/idmap_util.c index e671acf..3e484b3 100644 --- a/source3/winbindd/idmap_util.c +++ b/source3/winbindd/idmap_util.c @@ -86,10 +86,6 @@ backend: return NT_STATUS_NONE_MAPPED; } - if (winbindd_use_idmap_cache()) { - idmap_cache_set_sid2unixid(sid, &map.xid); - } - return NT_STATUS_OK; } @@ -150,10 +146,6 @@ backend: return NT_STATUS_NONE_MAPPED; } - if (winbindd_use_idmap_cache()) { - idmap_cache_set_sid2unixid(sid, &map.xid); - } - return NT_STATUS_OK; } -- 1.8.3.2