]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Catch duplicates and error out
authorAlan T. DeKok <aland@freeradius.org>
Mon, 16 May 2016 20:01:03 +0000 (16:01 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Mon, 16 May 2016 20:01:03 +0000 (16:01 -0400)
src/main/modules.c

index dad43e45609f1091ea93dcfd2546aedba6b072c5..2ea2f74955bb10ffbdfeb5fc5590b76d8698d351 100644 (file)
@@ -1343,7 +1343,18 @@ static bool virtual_server_define_types(CONF_SECTION *cs, rlm_components_t comp)
        for (subcs = cf_subsection_find_next(cs, NULL, section_type_value[comp].typename);
             subcs != NULL;
             subcs = cf_subsection_find_next(cs, subcs, section_type_value[comp].typename)) {
-               if (!define_type(cs, da, cf_section_name2(subcs))) {
+               char const *name2;
+               CONF_SECTION *cs2;
+
+               name2 = cf_section_name2(subcs);
+               cs2 = cf_section_sub_find_name2(cs, section_type_value[comp].typename, name2);
+               if (cs2 != subcs) {
+                       cf_log_err_cs(cs2, "Duplicate configuration section %s %s",
+                                     section_type_value[comp].typename, name2);
+                       return false;
+               }
+
+               if (!define_type(cs, da, name2)) {
                        return false;
                }
        }