summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSumit Bose <sbose@redhat.com>2013-08-13 17:59:42 +0200
committerJakub Hrozek <jhrozek@redhat.com>2013-08-19 12:36:07 +0200
commit83b5a69a90dd74aaef01d48846a5504789a28317 (patch)
tree6861667d0db1b37233ac3e08cba2894dc5efc768 /src
parenta9a619a4adb00ee60973050297b1b1c57e275016 (diff)
downloadsssd-83b5a69a90dd74aaef01d48846a5504789a28317.tar.gz
sssd-83b5a69a90dd74aaef01d48846a5504789a28317.tar.xz
sssd-83b5a69a90dd74aaef01d48846a5504789a28317.zip
ipa_s2n_get_user_done: make sure ALIAS name is lower case
Fixes https://fedorahosted.org/sssd/ticket/1630
Diffstat (limited to 'src')
-rw-r--r--src/providers/ipa/ipa_s2n_exop.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/providers/ipa/ipa_s2n_exop.c b/src/providers/ipa/ipa_s2n_exop.c
index 53746ca9c..d8506aaae 100644
--- a/src/providers/ipa/ipa_s2n_exop.c
+++ b/src/providers/ipa/ipa_s2n_exop.c
@@ -651,6 +651,7 @@ static void ipa_s2n_get_user_done(struct tevent_req *subreq)
struct sysdb_attrs *user_attrs = NULL;
struct sysdb_attrs *group_attrs = NULL;
char *name;
+ char *lc_name;
char *realm;
char *upn;
struct berval *bv_req = NULL;
@@ -766,7 +767,14 @@ static void ipa_s2n_get_user_done(struct tevent_req *subreq)
goto done;
}
- ret = sysdb_attrs_add_string(user_attrs, SYSDB_NAME_ALIAS, name);
+ lc_name = sss_tc_utf8_str_tolower(user_attrs, name);
+ if (lc_name == NULL) {
+ DEBUG(SSSDBG_CRIT_FAILURE, ("Cannot convert name to lowercase\n"));
+ ret = ENOMEM;
+ goto done;
+ }
+
+ ret = sysdb_attrs_add_string(user_attrs, SYSDB_NAME_ALIAS, lc_name);
if (ret != EOK) {
DEBUG(SSSDBG_OP_FAILURE, ("sysdb_attrs_add_string failed.\n"));
goto done;
@@ -844,8 +852,16 @@ static void ipa_s2n_get_user_done(struct tevent_req *subreq)
goto done;
}
+ lc_name = sss_tc_utf8_str_tolower(group_attrs, name);
+ if (lc_name == NULL) {
+ DEBUG(SSSDBG_CRIT_FAILURE,
+ ("Cannot convert name to lowercase\n"));
+ ret = ENOMEM;
+ goto done;
+ }
+
ret = sysdb_attrs_add_string(group_attrs, SYSDB_NAME_ALIAS,
- name);
+ lc_name);
if (ret != EOK) {
DEBUG(SSSDBG_OP_FAILURE, ("sysdb_attrs_add_string failed.\n"));
goto done;