]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
remove extraneous %{} when printing xlat functions
authorAlan T. DeKok <aland@freeradius.org>
Thu, 22 Jan 2026 12:47:25 +0000 (07:47 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Thu, 22 Jan 2026 12:47:25 +0000 (07:47 -0500)
src/lib/unlang/xlat_eval.c

index b70b9ce5afdd8837065081a7278a75941da82aff..6bc210634feb28653bcca337b02268d8e889d5d6 100644 (file)
@@ -161,10 +161,15 @@ static fr_slen_t xlat_fmt_print(fr_sbuff_t *out, xlat_exp_t const *node)
 
        case XLAT_TMPL:
                fr_assert(node->fmt != NULL);
-               if (tmpl_is_attr(node->vpt) && (node->fmt[0] == '&')) {
+
+               /*
+                *      Just print the attribute name, or the nested xlat.
+                */
+               if (tmpl_is_attr(node->vpt) || (tmpl_is_xlat(node->vpt))) {
                        return fr_sbuff_in_strcpy(out, node->fmt);
+
                } else {
-                       return fr_sbuff_in_sprintf(out, "%%{%pV}", fr_box_strvalue_buffer(node->fmt));
+                       return fr_sbuff_in_sprintf(out, "%%{%s}", node->fmt);
                }
 
 #ifdef HAVE_REGEX