summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/db/sysdb.c3
-rw-r--r--src/db/sysdb.h1
-rw-r--r--src/db/sysdb_autofs.c3
-rw-r--r--src/db/sysdb_ops.c9
-rw-r--r--src/providers/ipa/ipa_hbac_common.c6
-rw-r--r--src/providers/ipa/ipa_selinux.c8
6 files changed, 20 insertions, 10 deletions
diff --git a/src/db/sysdb.c b/src/db/sysdb.c
index 895125292..2f58d70d7 100644
--- a/src/db/sysdb.c
+++ b/src/db/sysdb.c
@@ -120,6 +120,7 @@ struct ldb_dn *sysdb_custom_subtree_dn(struct sysdb_ctx *sysdb,
}
struct ldb_dn *sysdb_custom_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx,
+ struct sss_domain_info *dom,
const char *object_name,
const char *subtree_name)
{
@@ -145,7 +146,7 @@ struct ldb_dn *sysdb_custom_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx,
}
dn = ldb_dn_new_fmt(mem_ctx, sysdb->ldb, SYSDB_TMPL_CUSTOM, clean_name,
- clean_subtree, sysdb->domain->name);
+ clean_subtree, dom->name);
done:
talloc_free(tmp_ctx);
diff --git a/src/db/sysdb.h b/src/db/sysdb.h
index 3a5e36dac..fd1d7c819 100644
--- a/src/db/sysdb.h
+++ b/src/db/sysdb.h
@@ -337,6 +337,7 @@ struct ldb_dn *sysdb_domain_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx,
struct sss_domain_info *dom);
struct ldb_dn *sysdb_base_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx);
struct ldb_dn *sysdb_custom_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx,
+ struct sss_domain_info *dom,
const char *object_name,
const char *subtree_name);
struct ldb_dn *sysdb_custom_subtree_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx,
diff --git a/src/db/sysdb_autofs.c b/src/db/sysdb_autofs.c
index 57380cfdc..446b3cacf 100644
--- a/src/db/sysdb_autofs.c
+++ b/src/db/sysdb_autofs.c
@@ -31,7 +31,8 @@ sysdb_autofsmap_dn(TALLOC_CTX *mem_ctx,
struct sysdb_ctx *sysdb,
const char *map_name)
{
- return sysdb_custom_dn(sysdb, mem_ctx, map_name, AUTOFS_MAP_SUBDIR);
+ return sysdb_custom_dn(sysdb, mem_ctx,
+ sysdb->domain, map_name, AUTOFS_MAP_SUBDIR);
}
static struct ldb_dn *
diff --git a/src/db/sysdb_ops.c b/src/db/sysdb_ops.c
index 4b0e16767..b70e0966b 100644
--- a/src/db/sysdb_ops.c
+++ b/src/db/sysdb_ops.c
@@ -2037,7 +2037,8 @@ int sysdb_search_custom_by_name(TALLOC_CTX *mem_ctx,
return ENOMEM;
}
- basedn = sysdb_custom_dn(sysdb, tmp_ctx, object_name, subtree_name);
+ basedn = sysdb_custom_dn(sysdb, tmp_ctx,
+ sysdb->domain, object_name, subtree_name);
if (basedn == NULL) {
DEBUG(1, ("sysdb_custom_dn failed.\n"));
ret = ENOMEM;
@@ -2119,7 +2120,8 @@ int sysdb_store_custom(struct sysdb_ctx *sysdb,
goto done;
}
- msg->dn = sysdb_custom_dn(sysdb, tmp_ctx, object_name, subtree_name);
+ msg->dn = sysdb_custom_dn(sysdb, tmp_ctx,
+ sysdb->domain, object_name, subtree_name);
if (!msg->dn) {
DEBUG(1, ("sysdb_custom_dn failed.\n"));
ret = ENOMEM;
@@ -2189,7 +2191,8 @@ int sysdb_delete_custom(struct sysdb_ctx *sysdb,
return ENOMEM;
}
- dn = sysdb_custom_dn(sysdb, tmp_ctx, object_name, subtree_name);
+ dn = sysdb_custom_dn(sysdb, tmp_ctx,
+ sysdb->domain, object_name, subtree_name);
if (dn == NULL) {
DEBUG(1, ("sysdb_custom_dn failed.\n"));
ret = ENOMEM;
diff --git a/src/providers/ipa/ipa_hbac_common.c b/src/providers/ipa/ipa_hbac_common.c
index 33d1944ee..500f3548f 100644
--- a/src/providers/ipa/ipa_hbac_common.c
+++ b/src/providers/ipa/ipa_hbac_common.c
@@ -630,7 +630,8 @@ hbac_eval_service_element(TALLOC_CTX *mem_ctx,
svc->name = servicename;
- svc_dn = sysdb_custom_dn(sysdb, tmp_ctx, svc->name, HBAC_SERVICES_SUBDIR);
+ svc_dn = sysdb_custom_dn(sysdb, tmp_ctx,
+ domain, svc->name, HBAC_SERVICES_SUBDIR);
if (svc_dn == NULL) {
ret = ENOMEM;
goto done;
@@ -737,7 +738,8 @@ hbac_eval_host_element(TALLOC_CTX *mem_ctx,
goto done;
}
- host_dn = sysdb_custom_dn(sysdb, tmp_ctx, host->name, HBAC_HOSTS_SUBDIR);
+ host_dn = sysdb_custom_dn(sysdb, tmp_ctx,
+ domain, host->name, HBAC_HOSTS_SUBDIR);
if (host_dn == NULL) {
ret = ENOMEM;
goto done;
diff --git a/src/providers/ipa/ipa_selinux.c b/src/providers/ipa/ipa_selinux.c
index d1dbe5765..7a6156776 100644
--- a/src/providers/ipa/ipa_selinux.c
+++ b/src/providers/ipa/ipa_selinux.c
@@ -53,6 +53,7 @@ static errno_t ipa_get_selinux_recv(struct tevent_req *req,
static struct ipa_selinux_op_ctx *
ipa_selinux_create_op_ctx(TALLOC_CTX *mem_ctx, struct sysdb_ctx *sysdb,
+ struct sss_domain_info *domain,
struct be_req *be_req, const char *username,
const char *hostname);
static void ipa_selinux_handler_done(struct tevent_req *subreq);
@@ -98,8 +99,8 @@ void ipa_selinux_handler(struct be_req *be_req)
goto fail;
}
- op_ctx = ipa_selinux_create_op_ctx(be_req, be_req->sysdb, be_req,
- pd->user, hostname);
+ op_ctx = ipa_selinux_create_op_ctx(be_req, be_req->sysdb, be_req->domain,
+ be_req, pd->user, hostname);
if (op_ctx == NULL) {
DEBUG(SSSDBG_OP_FAILURE, ("Cannot create op context\n"));
goto fail;
@@ -120,6 +121,7 @@ fail:
static struct ipa_selinux_op_ctx *
ipa_selinux_create_op_ctx(TALLOC_CTX *mem_ctx, struct sysdb_ctx *sysdb,
+ struct sss_domain_info *domain,
struct be_req *be_req, const char *username,
const char *hostname)
{
@@ -144,7 +146,7 @@ ipa_selinux_create_op_ctx(TALLOC_CTX *mem_ctx, struct sysdb_ctx *sysdb,
goto fail;
}
- host_dn = sysdb_custom_dn(sysdb, op_ctx, hostname, HBAC_HOSTS_SUBDIR);
+ host_dn = sysdb_custom_dn(sysdb, op_ctx, domain, hostname, HBAC_HOSTS_SUBDIR);
if (host_dn == NULL) {
goto fail;
}