diff options
-rw-r--r-- | src/responder/pac/pacsrv.h | 8 | ||||
-rw-r--r-- | src/responder/pac/pacsrv_cmd.c | 6 | ||||
-rw-r--r-- | src/responder/pac/pacsrv_utils.c | 12 |
3 files changed, 14 insertions, 12 deletions
diff --git a/src/responder/pac/pacsrv.h b/src/responder/pac/pacsrv.h index 64154dab..71c24f97 100644 --- a/src/responder/pac/pacsrv.h +++ b/src/responder/pac/pacsrv.h @@ -93,10 +93,10 @@ errno_t domsid_rid_to_uid(struct pac_ctx *pac_ctx, struct dom_sid2 *domsid, uint32_t rid, uid_t *uid); -errno_t get_my_domain_data(struct pac_ctx *pac_ctx, - struct sss_domain_info *dom, - struct dom_sid **_sid, - struct local_mapping_ranges **_range_map); +errno_t get_parent_domain_data(struct pac_ctx *pac_ctx, + struct sss_domain_info *dom, + struct dom_sid **_sid, + struct local_mapping_ranges **_range_map); errno_t get_gids_from_pac(TALLOC_CTX *mem_ctx, struct pac_ctx *pac_ctx, diff --git a/src/responder/pac/pacsrv_cmd.c b/src/responder/pac/pacsrv_cmd.c index a8b272e7..ac49a0e7 100644 --- a/src/responder/pac/pacsrv_cmd.c +++ b/src/responder/pac/pacsrv_cmd.c @@ -225,10 +225,10 @@ static errno_t pac_add_user_next(struct pac_req_ctx *pr_ctx) goto done; } - ret = get_my_domain_data(pr_ctx->pac_ctx, pr_ctx->dom, - &my_dom_sid, &my_range_map); + ret = get_parent_domain_data(pr_ctx->pac_ctx, pr_ctx->dom, + &my_dom_sid, &my_range_map); if (ret != EOK) { - DEBUG(SSSDBG_OP_FAILURE, ("get_my_domain_sid failed.\n")); + DEBUG(SSSDBG_OP_FAILURE, ("get_parent_domain_data failed.\n")); goto done; } diff --git a/src/responder/pac/pacsrv_utils.c b/src/responder/pac/pacsrv_utils.c index c868b107..7d14dadf 100644 --- a/src/responder/pac/pacsrv_utils.c +++ b/src/responder/pac/pacsrv_utils.c @@ -233,10 +233,10 @@ done: * Return information about the local domain from the main PAC responder * context or try to read it from cache and store it in the context. */ -errno_t get_my_domain_data(struct pac_ctx *pac_ctx, - struct sss_domain_info *dom, - struct dom_sid **_sid, - struct local_mapping_ranges **_range_map) +errno_t get_parent_domain_data(struct pac_ctx *pac_ctx, + struct sss_domain_info *dom, + struct dom_sid **_sid, + struct local_mapping_ranges **_range_map) { struct sysdb_ctx *sysdb; int ret; @@ -270,7 +270,9 @@ errno_t get_my_domain_data(struct pac_ctx *pac_ctx, goto done; } - basedn = sysdb_domain_dn(sysdb, tmp_ctx, dom); + /* The data of the parent domain should be read here. */ + basedn = sysdb_domain_dn(sysdb, tmp_ctx, + IS_SUBDOMAIN(dom) ? dom->parent : dom); if (basedn == NULL) { ret = ENOMEM; goto done; |