From 697b90866a8e58d4ab992c7f59da4a04546cf3b9 Mon Sep 17 00:00:00 2001 From: Sumit Bose Date: Thu, 2 Oct 2014 18:10:39 +0200 Subject: [PATCH 12/13] sid2name: return name without views applied Make sure that the original name of an object without any overrides applied is returned by sid2name requests. --- src/db/sysdb_ops.c | 1 + src/responder/nss/nsssrv_cmd.c | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/db/sysdb_ops.c b/src/db/sysdb_ops.c index 1d51119..c88ff9b 100644 --- a/src/db/sysdb_ops.c +++ b/src/db/sysdb_ops.c @@ -3507,6 +3507,7 @@ errno_t sysdb_search_object_by_sid(TALLOC_CTX *mem_ctx, { TALLOC_CTX *tmp_ctx; const char *def_attrs[] = { SYSDB_NAME, SYSDB_UIDNUM, SYSDB_GIDNUM, + ORIGINALAD_PREFIX SYSDB_NAME, SYSDB_OBJECTCLASS, NULL }; struct ldb_dn *basedn; int ret; diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c index e5e8ba9..09a8b60 100644 --- a/src/responder/nss/nsssrv_cmd.c +++ b/src/responder/nss/nsssrv_cmd.c @@ -4636,11 +4636,12 @@ static errno_t fill_orig(struct sss_packet *packet, static errno_t fill_name(struct sss_packet *packet, struct sss_domain_info *dom, enum sss_id_type id_type, + bool apply_no_view, struct ldb_message *msg) { int ret; TALLOC_CTX *tmp_ctx = NULL; - const char *orig_name; + const char *orig_name = NULL; const char *cased_name; const char *fq_name; struct sized_string name; @@ -4649,7 +4650,15 @@ static errno_t fill_name(struct sss_packet *packet, size_t blen; size_t pctr = 0; - orig_name = ldb_msg_find_attr_as_string(msg, SYSDB_NAME, NULL); + if (apply_no_view) { + orig_name = ldb_msg_find_attr_as_string(msg, + ORIGINALAD_PREFIX SYSDB_NAME, + NULL); + } + + if (orig_name == NULL) { + orig_name = ldb_msg_find_attr_as_string(msg, SYSDB_NAME, NULL); + } if (orig_name == NULL) { DEBUG(SSSDBG_CRIT_FAILURE, "Missing name.\n"); return EINVAL; @@ -4768,6 +4777,7 @@ static errno_t nss_cmd_getbysid_send_reply(struct nss_dom_ctx *dctx) ret = fill_name(cctx->creq->out, dctx->domain, id_type, + true, dctx->res->msgs[0]); break; case SSS_NSS_GETIDBYSID: -- 1.8.3.1