diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2013-08-11 23:39:49 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2013-09-03 16:23:33 +0200 |
commit | 5c0050453d152b49142188c3771f2ca3e4f5c6ab (patch) | |
tree | 72bbc59cdbd9ff334041c389f63292d171f0c5fb /src/db | |
parent | cc0a816d8a345398d900bc006e73d10049f0c38a (diff) | |
download | sssd-5c0050453d152b49142188c3771f2ca3e4f5c6ab.tar.gz sssd-5c0050453d152b49142188c3771f2ca3e4f5c6ab.tar.xz sssd-5c0050453d152b49142188c3771f2ca3e4f5c6ab.zip |
Make IPA SELinux provider aware of subdomain users
Fixes https://fedorahosted.org/sssd/ticket/1892
Diffstat (limited to 'src/db')
-rw-r--r-- | src/db/sysdb_selinux.c | 9 | ||||
-rw-r--r-- | src/db/sysdb_selinux.h | 2 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/db/sysdb_selinux.c b/src/db/sysdb_selinux.c index a6b4809f6..f49f58d27 100644 --- a/src/db/sysdb_selinux.c +++ b/src/db/sysdb_selinux.c @@ -333,7 +333,7 @@ sysdb_get_selinux_usermaps(TALLOC_CTX *mem_ctx, } errno_t sysdb_search_selinux_usermap_by_username(TALLOC_CTX *mem_ctx, - struct sysdb_ctx *sysdb, + struct sss_domain_info *dom, const char *username, struct ldb_message ***_usermaps) { @@ -357,20 +357,23 @@ errno_t sysdb_search_selinux_usermap_by_username(TALLOC_CTX *mem_ctx, uint32_t top_priority = 0; errno_t ret; int i; + struct sss_domain_info *parent_dom; tmp_ctx = talloc_new(NULL); if (!tmp_ctx) { return ENOMEM; } + parent_dom = dom->parent ? dom->parent : dom; + /* Now extract user attributes */ - ret = sss_selinux_extract_user(tmp_ctx, sysdb, username, &user); + ret = sss_selinux_extract_user(tmp_ctx, dom->sysdb, username, &user); if (ret != EOK) { goto done; } /* Now extract all SELinux user maps */ - ret = sysdb_get_selinux_usermaps(tmp_ctx, sysdb, attrs, &msgs_count, &msgs); + ret = sysdb_get_selinux_usermaps(tmp_ctx, parent_dom->sysdb, attrs, &msgs_count, &msgs); if (ret) { goto done; } diff --git a/src/db/sysdb_selinux.h b/src/db/sysdb_selinux.h index 5fcbb56ef..598936dbd 100644 --- a/src/db/sysdb_selinux.h +++ b/src/db/sysdb_selinux.h @@ -61,7 +61,7 @@ errno_t sysdb_search_selinux_usermap_by_mapname(TALLOC_CTX *mem_ctx, struct ldb_message **_usermap); errno_t sysdb_search_selinux_usermap_by_username(TALLOC_CTX *mem_ctx, - struct sysdb_ctx *sysdb, + struct sss_domain_info *dom, const char *username, struct ldb_message ***_usermaps); |