[SSSD] [PATCH] ipa_s2n_get_user_done: make sure ALIAS name is lower case

Sumit Bose sbose at redhat.com
Fri Aug 16 16:35:52 UTC 2013


Hi,

the second patch fixes https://fedorahosted.org/sssd/ticket/1630 while
the first adds a missing talloc_free(). One might argue that both
talloc_free() can be removed because the parent context is freed later
during the request.

bye,
Sumit
-------------- next part --------------
From 8af12d60f892d25808a1a74517b9c2c2ff40eadf Mon Sep 17 00:00:00 2001
From: Sumit Bose <sbose at redhat.com>
Date: Tue, 13 Aug 2013 17:59:11 +0200
Subject: [PATCH 1/2] ipa_s2n_get_user_done: free group_attrs as well

---
 src/providers/ipa/ipa_s2n_exop.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/src/providers/ipa/ipa_s2n_exop.c b/src/providers/ipa/ipa_s2n_exop.c
index e16ec14..53746ca 100644
--- a/src/providers/ipa/ipa_s2n_exop.c
+++ b/src/providers/ipa/ipa_s2n_exop.c
@@ -882,6 +882,7 @@ static void ipa_s2n_get_user_done(struct tevent_req *subreq)
 
 done:
     talloc_free(user_attrs);
+    talloc_free(group_attrs);
     if (ret == EOK) {
         tevent_req_done(req);
     } else {
-- 
1.7.7.6

-------------- next part --------------
From 7c54aef6677a8498907d57156f661992d91055e9 Mon Sep 17 00:00:00 2001
From: Sumit Bose <sbose at redhat.com>
Date: Tue, 13 Aug 2013 17:59:42 +0200
Subject: [PATCH 2/2] ipa_s2n_get_user_done: make sure ALIAS name is lower
 case

Fixes https://fedorahosted.org/sssd/ticket/1630
---
 src/providers/ipa/ipa_s2n_exop.c |   20 ++++++++++++++++++--
 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 53746ca..d8506aa 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;
-- 
1.7.7.6



More information about the sssd-devel mailing list