summaryrefslogtreecommitdiffstats
path: root/src/providers/ipa/ipa_selinux.c
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2012-09-13 10:07:29 +0200
committerJakub Hrozek <jhrozek@redhat.com>2012-09-13 18:11:59 +0200
commitebb1f28998c06984765e3e78d30911c1c3ec84e2 (patch)
treedf4f3009903fd1f312365776d7e1c8d37bee58be /src/providers/ipa/ipa_selinux.c
parent894d18ff4178f40a18bbfece8fae270d8307eac6 (diff)
downloadsssd-ebb1f28998c06984765e3e78d30911c1c3ec84e2.tar.gz
sssd-ebb1f28998c06984765e3e78d30911c1c3ec84e2.tar.xz
sssd-ebb1f28998c06984765e3e78d30911c1c3ec84e2.zip
SELinux: Always use the default if it exists on the server
https://fedorahosted.org/sssd/ticket/1513 This is a counterpart of the FreeIPA ticket https://fedorahosted.org/freeipa/ticket/3045 During an e-mail discussion, it was decided that * if the default is set in the IPA config object, the SSSD would use that default no matter what * if the default is not set (aka empty or missing), the SSSD would just use the system default and skip creating the login file altogether
Diffstat (limited to 'src/providers/ipa/ipa_selinux.c')
-rw-r--r--src/providers/ipa/ipa_selinux.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/providers/ipa/ipa_selinux.c b/src/providers/ipa/ipa_selinux.c
index 36a2bfb4a..0adc0fd02 100644
--- a/src/providers/ipa/ipa_selinux.c
+++ b/src/providers/ipa/ipa_selinux.c
@@ -136,11 +136,9 @@ static void ipa_selinux_handler_done(struct tevent_req *req)
goto fail;
}
- if (default_user != NULL && map_order != NULL) {
- ret = sysdb_store_selinux_config(sysdb, default_user, map_order);
- if (ret != EOK) {
- goto fail;
- }
+ ret = sysdb_store_selinux_config(sysdb, default_user, map_order);
+ if (ret != EOK) {
+ goto fail;
}
if (map_count > 0 && maps != NULL) {
@@ -668,13 +666,15 @@ ipa_get_selinux_recv(struct tevent_req *req,
if (state->defaults != NULL) {
ret = sysdb_attrs_get_string(state->defaults, IPA_CONFIG_SELINUX_DEFAULT_MAP,
&tmp_str);
- if (ret != EOK) {
+ if (ret != EOK && ret != ENOENT) {
return ret;
}
- *default_user = talloc_strdup(mem_ctx, tmp_str);
- if (*default_user == NULL) {
- return ENOMEM;
+ if (ret == EOK) {
+ *default_user = talloc_strdup(mem_ctx, tmp_str);
+ if (*default_user == NULL) {
+ return ENOMEM;
+ }
}
ret = sysdb_attrs_get_string(state->defaults, IPA_CONFIG_SELINUX_MAP_ORDER,