Only call paircompare register once per instance of rlm_ldap
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Wed, 3 Jul 2013 16:55:33 +0000 (17:55 +0100)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Wed, 3 Jul 2013 16:55:33 +0000 (17:55 +0100)
src/modules/rlm_ldap/rlm_ldap.c

index 35515ec..de58ca9 100644 (file)
@@ -643,8 +643,6 @@ static int mod_instantiate(CONF_SECTION *conf, void *instance)
        /*
         *      Group comparison checks.
         */
-       inst->group_da = dict_attrbyvalue(PW_LDAP_GROUP, 0);
-       paircompare_register(PW_LDAP_GROUP, PW_USER_NAME, rlm_ldap_groupcmp, inst);     
        if (cf_section_name2(conf)) {
                ATTR_FLAGS flags;
                char buffer[256];
@@ -662,7 +660,13 @@ static int mod_instantiate(CONF_SECTION *conf, void *instance)
                }
                
                paircompare_register(inst->group_da->attr, PW_USER_NAME, rlm_ldap_groupcmp, inst);
-       }
+       /*
+        *      Were the default instance
+        */
+       } else {
+               inst->group_da = dict_attrbyvalue(PW_LDAP_GROUP, 0);
+               paircompare_register(PW_LDAP_GROUP, PW_USER_NAME, rlm_ldap_groupcmp, inst);
+       }       
 
        xlat_register(inst->xlat_name, ldap_xlat, rlm_ldap_escape_func, inst);