From 3613cc1eba1337256a2d06ba7a84532156139ccd Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Sun, 6 Jan 2013 00:59:59 -0500 Subject: Make sysdb_user_dn() require a domain explictly. --- src/db/sysdb.c | 4 ++-- src/db/sysdb.h | 2 +- src/db/sysdb_ops.c | 12 ++++++------ src/responder/pac/pacsrv_cmd.c | 2 +- src/tests/sysdb-tests.c | 6 ++++-- src/tools/sss_sync_ops.c | 6 +++--- 6 files changed, 17 insertions(+), 15 deletions(-) diff --git a/src/db/sysdb.c b/src/db/sysdb.c index 479791b79..b7951d32a 100644 --- a/src/db/sysdb.c +++ b/src/db/sysdb.c @@ -153,7 +153,7 @@ done: } struct ldb_dn *sysdb_user_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx, - const char *name) + struct sss_domain_info *dom, const char *name) { errno_t ret; char *clean_name; @@ -165,7 +165,7 @@ struct ldb_dn *sysdb_user_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx, } dn = ldb_dn_new_fmt(mem_ctx, sysdb->ldb, SYSDB_TMPL_USER, - clean_name, sysdb->domain->name); + clean_name, dom->name); talloc_free(clean_name); return dn; diff --git a/src/db/sysdb.h b/src/db/sysdb.h index 9c2996adb..5130b06a8 100644 --- a/src/db/sysdb.h +++ b/src/db/sysdb.h @@ -323,7 +323,7 @@ int sysdb_error_to_errno(int ldberr); errno_t sysdb_get_rdn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx, const char *_dn, char **_name, char **_val); struct ldb_dn *sysdb_user_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx, - const char *name); + struct sss_domain_info *dom, const char *name); struct ldb_dn *sysdb_group_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx, const char *name); struct ldb_dn *sysdb_netgroup_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx, diff --git a/src/db/sysdb_ops.c b/src/db/sysdb_ops.c index 9974beb05..108f3b848 100644 --- a/src/db/sysdb_ops.c +++ b/src/db/sysdb_ops.c @@ -249,7 +249,7 @@ int sysdb_search_user_by_name(TALLOC_CTX *mem_ctx, return ENOMEM; } - basedn = sysdb_user_dn(sysdb, tmp_ctx, name); + basedn = sysdb_user_dn(sysdb, tmp_ctx, sysdb->domain, name); if (!basedn) { ret = ENOMEM; goto done; @@ -557,7 +557,7 @@ int sysdb_set_user_attr(struct sysdb_ctx *sysdb, return ENOMEM; } - dn = sysdb_user_dn(sysdb, tmp_ctx, name); + dn = sysdb_user_dn(sysdb, tmp_ctx, sysdb->domain, name); if (!dn) { ret = ENOMEM; goto done; @@ -829,7 +829,7 @@ int sysdb_add_basic_user(struct sysdb_ctx *sysdb, } /* user dn */ - msg->dn = sysdb_user_dn(sysdb, msg, name); + msg->dn = sysdb_user_dn(sysdb, msg, sysdb->domain, name); if (!msg->dn) { ERROR_OUT(ret, ENOMEM, done); } @@ -1018,7 +1018,7 @@ sysdb_remove_ghostattr_from_groups(struct sysdb_ctx *sysdb, goto done; } - tmpdn = sysdb_user_dn(sysdb, tmp_ctx, name); + tmpdn = sysdb_user_dn(sysdb, tmp_ctx, sysdb->domain, name); if (!tmpdn) { ERROR_OUT(ret, ENOMEM, done); } @@ -1874,7 +1874,7 @@ sysdb_group_membership_mod(struct sysdb_ctx *sysdb, } if (type == SYSDB_MEMBER_USER) { - member_dn = sysdb_user_dn(sysdb, tmp_ctx, member); + member_dn = sysdb_user_dn(sysdb, tmp_ctx, sysdb->domain, member); } else if (type == SYSDB_MEMBER_GROUP) { member_dn = sysdb_group_dn(sysdb, tmp_ctx, member); } else { @@ -3045,7 +3045,7 @@ errno_t sysdb_remove_attrs(struct sysdb_ctx *sysdb, switch(type) { case SYSDB_MEMBER_USER: - msg->dn = sysdb_user_dn(sysdb, msg, name); + msg->dn = sysdb_user_dn(sysdb, msg, sysdb->domain, name); break; case SYSDB_MEMBER_GROUP: diff --git a/src/responder/pac/pacsrv_cmd.c b/src/responder/pac/pacsrv_cmd.c index bc897446e..dc5c4231a 100644 --- a/src/responder/pac/pacsrv_cmd.c +++ b/src/responder/pac/pacsrv_cmd.c @@ -443,7 +443,7 @@ struct tevent_req *pac_save_memberships_send(struct pac_req_ctx *pr_ctx) state->gid_iter = 0; state->dom_iter = 0; - state->user_dn = sysdb_user_dn(dom->sysdb, state, pr_ctx->fq_name); + state->user_dn = sysdb_user_dn(dom->sysdb, state, dom, pr_ctx->fq_name); if (state->user_dn == NULL) { ret = ENOMEM; goto done; diff --git a/src/tests/sysdb-tests.c b/src/tests/sysdb-tests.c index c2e20c0a6..f624ba4d5 100644 --- a/src/tests/sysdb-tests.c +++ b/src/tests/sysdb-tests.c @@ -218,7 +218,8 @@ static int test_remove_user(struct test_data *data) struct ldb_dn *user_dn; int ret; - user_dn = sysdb_user_dn(data->ctx->sysdb, data, data->username); + user_dn = sysdb_user_dn(data->ctx->sysdb, data, + data->ctx->domain, data->username); if (!user_dn) return ENOMEM; ret = sysdb_delete_entry(data->ctx->sysdb, user_dn, true); @@ -1762,7 +1763,8 @@ START_TEST (test_sysdb_asq_search) data->attrlist[0] = "gidNumber"; data->attrlist[1] = NULL; - user_dn = sysdb_user_dn(data->ctx->sysdb, data, ASQ_TEST_USER); + user_dn = sysdb_user_dn(data->ctx->sysdb, data, + data->ctx->domain, ASQ_TEST_USER); fail_unless(user_dn != NULL, "sysdb_user_dn failed"); ret = sysdb_asq_search(data, test_ctx->sysdb, diff --git a/src/tools/sss_sync_ops.c b/src/tools/sss_sync_ops.c index 10a1a127a..0e3d326a4 100644 --- a/src/tools/sss_sync_ops.c +++ b/src/tools/sss_sync_ops.c @@ -199,7 +199,7 @@ int usermod(TALLOC_CTX *mem_ctx, int ret; if (data->addgroups || data->rmgroups) { - member_dn = sysdb_user_dn(sysdb, mem_ctx, data->name); + member_dn = sysdb_user_dn(sysdb, mem_ctx, data->domain, data->name); if (!member_dn) { return ENOMEM; } @@ -476,7 +476,7 @@ int useradd(TALLOC_CTX *mem_ctx, if (data->addgroups) { struct ldb_dn *member_dn; - member_dn = sysdb_user_dn(sysdb, mem_ctx, data->name); + member_dn = sysdb_user_dn(sysdb, mem_ctx, data->domain, data->name); if (!member_dn) { ret = ENOMEM; goto done; @@ -505,7 +505,7 @@ int userdel(TALLOC_CTX *mem_ctx, struct ldb_dn *user_dn; int ret; - user_dn = sysdb_user_dn(sysdb, mem_ctx, data->name); + user_dn = sysdb_user_dn(sysdb, mem_ctx, data->domain, data->name); if (!user_dn) { DEBUG(1, ("Could not construct a user DN\n")); return ENOMEM; -- cgit