]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
don't reparse things which were already parsed
authorAlan T. DeKok <aland@freeradius.org>
Mon, 15 Jun 2026 17:59:43 +0000 (13:59 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Mon, 15 Jun 2026 18:02:05 +0000 (14:02 -0400)
src/lib/server/cf_parse.c

index 7bec0bfd6fc8f8f1590a763cfd1e4ecb22321406..d8a53a830b305a0244f769c1c200a6b171c1f243 100644 (file)
@@ -550,6 +550,12 @@ static int CC_HINT(nonnull(4,5)) cf_pair_parse_internal(TALLOC_CTX *ctx, void *o
        required = fr_rule_required(rule);
        deprecated = fr_rule_deprecated(rule);
 
+       cp = cf_pair_find(cs, rule->name1);
+       if (cp && cp->item.parsed) {
+               return 0;
+       }
+       cp = NULL;
+
        /*
         *      If the item is multi-valued we allocate an array
         *      to hold the multiple values.