]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
resepct cast in tmpl_eval_pair_virtual(), too
authorAlan T. DeKok <aland@freeradius.org>
Mon, 4 Jul 2022 18:54:26 +0000 (14:54 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Mon, 4 Jul 2022 22:19:38 +0000 (18:19 -0400)
src/lib/server/tmpl_eval.c

index 2a476b0bef67931e705676ce1b2b4df608d24cac..ee9f11457f3d47321b519badc6b3bb381ddc3baa 100644 (file)
@@ -1089,8 +1089,9 @@ int tmpl_value_list_insert_tail(fr_value_box_list_t *list, fr_value_box_t *box,
 static int tmpl_eval_pair_virtual(TALLOC_CTX *ctx, fr_value_box_list_t *out,
                                  request_t *request, tmpl_t const *vpt)
 {
-       fr_radius_packet_t      *packet = NULL;
+       fr_radius_packet_t *packet = NULL;
        fr_value_box_t  *value;
+       fr_value_box_list_t list;
 
        /*
         *      Virtual attributes always have a count of 1
@@ -1221,8 +1222,15 @@ static int tmpl_eval_pair_virtual(TALLOC_CTX *ctx, fr_value_box_list_t *out,
        }
 
 done:
-       fr_dlist_insert_tail(out, value);
+       fr_value_box_list_init(&list);
+       fr_dlist_insert_tail(&list, value);
+
+       if (tmpl_eval_cast(ctx, &list, vpt) < 0) {
+               fr_dlist_talloc_free(&list);
+               return -1;
+       };
 
+       fr_dlist_move(out, &list);
        return 0;
 }