From: Jorge Pereira Date: Thu, 29 Apr 2021 14:18:54 +0000 (-0300) Subject: 🔧 tmpl: Fix tmpl_find_or_add_vp() (#3985) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7e32821cb72c19c1080d98a76f1218eb13893847;p=thirdparty%2Ffreeradius-server.git 🔧 tmpl: Fix tmpl_find_or_add_vp() (#3985) * tmpl: Normalize tmpl_pair_list_and_ctx() name * tmpl: Fix tmpl_find_or_add_vp() It should add the vp into the correct list. --- diff --git a/src/lib/server/tmpl.h b/src/lib/server/tmpl.h index a933c0e1431..5c1fde7f31d 100644 --- a/src/lib/server/tmpl.h +++ b/src/lib/server/tmpl.h @@ -753,7 +753,7 @@ void tmpl_verify(char const *file, int line, tmpl_t const *vpt); fr_pair_list_t *head; fr_value_box_t value; - tmpl_pair_list_AND_CTX(ctx, head, request, CURRENT_REQUEST, PAIR_LIST_REQUEST); + tmpl_pair_list_and_ctx(ctx, head, request, CURRENT_REQUEST, PAIR_LIST_REQUEST); if (!list) return -1; // error value.strvalue = talloc_typed_strdup(NULL, "my new username"); @@ -766,7 +766,7 @@ void tmpl_verify(char const *file, int line, tmpl_t const *vpt); * @param _ref to resolve. * @param _list to resolve. */ -#define tmpl_pair_list_AND_CTX(_ctx, _head, _request, _ref, _list) \ +#define tmpl_pair_list_and_ctx(_ctx, _head, _request, _ref, _list) \ do {\ request_t *_rctx = _request; \ if ((tmpl_request_ptr(&_rctx, _ref) < 0) || \ diff --git a/src/lib/server/tmpl_eval.c b/src/lib/server/tmpl_eval.c index bc000553436..36642b6172e 100644 --- a/src/lib/server/tmpl_eval.c +++ b/src/lib/server/tmpl_eval.c @@ -1477,12 +1477,15 @@ int tmpl_find_or_add_vp(fr_pair_t **out, request_t *request, tmpl_t const *vpt) TALLOC_CTX *ctx; fr_pair_list_t *head; - tmpl_pair_list_AND_CTX(ctx, head, request, tmpl_request(vpt), tmpl_list(vpt)); + tmpl_pair_list_and_ctx(ctx, head, request, tmpl_request(vpt), tmpl_list(vpt)); MEM(vp = fr_pair_afrom_da(ctx, tmpl_da(vpt))); + + fr_pair_add(head, vp); + *out = vp; } - return 0; + return 1; default: return err;