summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/db/sysdb.h1
-rw-r--r--src/db/sysdb_ops.c6
-rw-r--r--src/providers/ipa/ipa_hbac_users.c2
-rw-r--r--src/providers/ldap/ldap_id_cleanup.c11
-rw-r--r--src/providers/ldap/sdap_async_groups.c3
-rw-r--r--src/providers/ldap/sdap_reinit.c5
-rw-r--r--src/tools/sss_cache.c3
-rw-r--r--src/tools/sss_groupshow.c3
8 files changed, 22 insertions, 12 deletions
diff --git a/src/db/sysdb.h b/src/db/sysdb.h
index 5f406e31d..8ccf637a6 100644
--- a/src/db/sysdb.h
+++ b/src/db/sysdb.h
@@ -762,6 +762,7 @@ int sysdb_delete_user(struct sysdb_ctx *sysdb,
int sysdb_search_groups(TALLOC_CTX *mem_ctx,
struct sysdb_ctx *sysdb,
+ struct sss_domain_info *domain,
const char *sub_filter,
const char **attrs,
size_t *msgs_count,
diff --git a/src/db/sysdb_ops.c b/src/db/sysdb_ops.c
index 4b885d67e..37e6b682b 100644
--- a/src/db/sysdb_ops.c
+++ b/src/db/sysdb_ops.c
@@ -2460,7 +2460,8 @@ int sysdb_delete_user(struct sysdb_ctx *sysdb,
goto fail;
}
- ret = sysdb_search_groups(tmp_ctx, sysdb, filter, attrs, &msg_count, &msgs);
+ ret = sysdb_search_groups(tmp_ctx, sysdb, domain,
+ filter, attrs, &msg_count, &msgs);
if (ret != EOK) {
goto fail;
}
@@ -2503,6 +2504,7 @@ fail:
int sysdb_search_groups(TALLOC_CTX *mem_ctx,
struct sysdb_ctx *sysdb,
+ struct sss_domain_info *domain,
const char *sub_filter,
const char **attrs,
size_t *msgs_count,
@@ -2519,7 +2521,7 @@ int sysdb_search_groups(TALLOC_CTX *mem_ctx,
}
basedn = ldb_dn_new_fmt(tmp_ctx, sysdb->ldb,
- SYSDB_TMPL_GROUP_BASE, sysdb->domain->name);
+ SYSDB_TMPL_GROUP_BASE, domain->name);
if (!basedn) {
DEBUG(2, ("Failed to build base dn\n"));
ret = ENOMEM;
diff --git a/src/providers/ipa/ipa_hbac_users.c b/src/providers/ipa/ipa_hbac_users.c
index 7b59c321b..2b27b1f75 100644
--- a/src/providers/ipa/ipa_hbac_users.c
+++ b/src/providers/ipa/ipa_hbac_users.c
@@ -265,7 +265,7 @@ hbac_user_attrs_to_rule(TALLOC_CTX *mem_ctx,
num_users++;
} else {
/* Check if it is a group instead */
- ret = sysdb_search_groups(tmp_ctx, sysdb,
+ ret = sysdb_search_groups(tmp_ctx, sysdb, domain,
filter, attrs, &count, &msgs);
if (ret != EOK && ret != ENOENT) goto done;
if (ret == EOK && count == 0) {
diff --git a/src/providers/ldap/ldap_id_cleanup.c b/src/providers/ldap/ldap_id_cleanup.c
index 77c4d94ee..103cca973 100644
--- a/src/providers/ldap/ldap_id_cleanup.c
+++ b/src/providers/ldap/ldap_id_cleanup.c
@@ -171,7 +171,8 @@ struct global_cleanup_state {
static int cleanup_users(TALLOC_CTX *memctx, struct sdap_id_ctx *ctx);
static int cleanup_groups(TALLOC_CTX *memctx,
- struct sysdb_ctx *sysdb);
+ struct sysdb_ctx *sysdb,
+ struct sss_domain_info *domain);
struct tevent_req *ldap_id_cleanup_send(TALLOC_CTX *memctx,
struct tevent_context *ev,
@@ -203,7 +204,8 @@ struct tevent_req *ldap_id_cleanup_send(TALLOC_CTX *memctx,
}
ret = cleanup_groups(state,
- state->ctx->be->sysdb);
+ state->ctx->be->sysdb,
+ state->ctx->be->domain);
if (ret) {
goto fail;
}
@@ -380,7 +382,8 @@ static int cleanup_users_logged_in(hash_table_t *table,
/* ==Group-Cleanup-Process================================================ */
static int cleanup_groups(TALLOC_CTX *memctx,
- struct sysdb_ctx *sysdb)
+ struct sysdb_ctx *sysdb,
+ struct sss_domain_info *domain)
{
TALLOC_CTX *tmpctx;
const char *attrs[] = { SYSDB_NAME, SYSDB_GIDNUM, NULL };
@@ -411,7 +414,7 @@ static int cleanup_groups(TALLOC_CTX *memctx,
goto done;
}
- ret = sysdb_search_groups(tmpctx, sysdb,
+ ret = sysdb_search_groups(tmpctx, sysdb, domain,
subfilter, attrs, &count, &msgs);
if (ret) {
if (ret == ENOENT) {
diff --git a/src/providers/ldap/sdap_async_groups.c b/src/providers/ldap/sdap_async_groups.c
index fde83ee81..96cc7c0c1 100644
--- a/src/providers/ldap/sdap_async_groups.c
+++ b/src/providers/ldap/sdap_async_groups.c
@@ -3025,7 +3025,8 @@ sdap_nested_group_check_cache(TALLOC_CTX *mem_ctx,
/* It wasn't a user. Check whether it's a group */
if (ret == EOK) talloc_zfree(msgs);
- ret = sysdb_search_groups(tmp_ctx, sysdb, filter, attrs, &count, &msgs);
+ ret = sysdb_search_groups(tmp_ctx, sysdb, dom,
+ filter, attrs, &count, &msgs);
if (ret != EOK && ret != ENOENT) {
ret = EIO;
goto fail;
diff --git a/src/providers/ldap/sdap_reinit.c b/src/providers/ldap/sdap_reinit.c
index cc836ae53..41d102494 100644
--- a/src/providers/ldap/sdap_reinit.c
+++ b/src/providers/ldap/sdap_reinit.c
@@ -153,7 +153,8 @@ static errno_t sdap_reinit_clear_usn(struct sysdb_ctx *sysdb,
msgs_num = 0;
/* reset groups' usn */
- ret = sysdb_search_groups(tmp_ctx, sysdb, "", attrs, &msgs_num, &msgs);
+ ret = sysdb_search_groups(tmp_ctx, sysdb, domain,
+ "", attrs, &msgs_num, &msgs);
if (ret != EOK) {
goto done;
}
@@ -279,7 +280,7 @@ static errno_t sdap_reinit_delete_records(struct sysdb_ctx *sysdb,
msgs_num = 0;
/* purge untouched groups */
- ret = sysdb_search_groups(tmp_ctx, sysdb, "(!("SYSDB_USN"=*))",
+ ret = sysdb_search_groups(tmp_ctx, sysdb, domain, "(!("SYSDB_USN"=*))",
attrs, &msgs_num, &msgs);
if (ret != EOK) {
goto done;
diff --git a/src/tools/sss_cache.c b/src/tools/sss_cache.c
index 0c6112cca..c974a28b7 100644
--- a/src/tools/sss_cache.c
+++ b/src/tools/sss_cache.c
@@ -297,7 +297,8 @@ static bool invalidate_entries(TALLOC_CTX *ctx,
break;
case TYPE_GROUP:
type_string = "group";
- ret = sysdb_search_groups(ctx, sysdb, filter, attrs, &msg_count, &msgs);
+ ret = sysdb_search_groups(ctx, sysdb, dinfo,
+ filter, attrs, &msg_count, &msgs);
break;
case TYPE_NETGROUP:
type_string = "netgroup";
diff --git a/src/tools/sss_groupshow.c b/src/tools/sss_groupshow.c
index 93e0acbae..56adf2a06 100644
--- a/src/tools/sss_groupshow.c
+++ b/src/tools/sss_groupshow.c
@@ -437,7 +437,8 @@ static int group_show_trim_memberof(TALLOC_CTX *mem_ctx,
return ENOMEM;
}
- ret = sysdb_search_groups(mem_ctx, sysdb, filter, NULL, &count, &msgs);
+ ret = sysdb_search_groups(mem_ctx, sysdb, domain,
+ filter, NULL, &count, &msgs);
/* ENOENT is OK, the group is just not a direct parent */
if (ret != EOK && ret != ENOENT) {
return ret;