From: Nick Porter Date: Fri, 25 Nov 2022 16:06:31 +0000 (+0000) Subject: Take a copy of trigger args so async triggers have access to them X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4dfe0d82c9a53f1a374aec63e6e5c84cb559279a;p=thirdparty%2Ffreeradius-server.git Take a copy of trigger args so async triggers have access to them --- diff --git a/src/lib/server/trigger.c b/src/lib/server/trigger.c index 77b266705ee..3d35f44d89c 100644 --- a/src/lib/server/trigger.c +++ b/src/lib/server/trigger.c @@ -396,10 +396,18 @@ int trigger_exec(unlang_interpret_t *intp, * Add the args to the request data, so they can be picked up by the * trigger_xlat function. */ - if (args && (request_data_add(request, &trigger_exec_main, REQUEST_INDEX_TRIGGER_ARGS, args, - false, false, false) < 0)) { - talloc_free(request); - return -1; + if (args) { + fr_pair_list_t *local_args; + + MEM(local_args = talloc_zero(request, fr_pair_list_t)); + fr_pair_list_init(local_args); + fr_pair_list_copy(local_args, local_args, args); + + if (request_data_add(request, &trigger_exec_main, REQUEST_INDEX_TRIGGER_ARGS, local_args, + false, false, false) < 0) { + talloc_free(request); + return -1; + } } {