From: Arran Cudbard-Bell Date: Wed, 8 Sep 2021 23:42:57 +0000 (-0500) Subject: Initialise temporary event list if we're not passed one in unlang_interpret_synchronous X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=77fb81340f57d628deb85e103e3c4e7342ed72e3;p=thirdparty%2Ffreeradius-server.git Initialise temporary event list if we're not passed one in unlang_interpret_synchronous --- diff --git a/src/lib/server/trigger.c b/src/lib/server/trigger.c index 68293fa0100..39b3a461c5c 100644 --- a/src/lib/server/trigger.c +++ b/src/lib/server/trigger.c @@ -463,7 +463,7 @@ int trigger_exec(unlang_interpret_t *intp, request_t *request, * with something like the server * shutting down. */ - unlang_interpret_synchronous(unlang_interpret_event_list(request), child); + unlang_interpret_synchronous(NULL, child); talloc_free(child); } diff --git a/src/lib/unlang/interpret_synchronous.c b/src/lib/unlang/interpret_synchronous.c index 8cc6e7db3bf..1f3ec1970d8 100644 --- a/src/lib/unlang/interpret_synchronous.c +++ b/src/lib/unlang/interpret_synchronous.c @@ -196,9 +196,13 @@ rlm_rcode_t unlang_interpret_synchronous(fr_event_list_t *el, request_t *request bool dont_wait_for_event; int iterations = 0; + fr_event_list_t *our_el = NULL; + old_intp = unlang_interpret_get(request); caller = request->module; + if (!el) el = our_el = fr_event_list_alloc(NULL, NULL, NULL); + intps = unlang_interpret_synchronous_alloc(request, el); unlang_interpret_set(request, intps->intp); @@ -278,6 +282,8 @@ rlm_rcode_t unlang_interpret_synchronous(fr_event_list_t *el, request_t *request DEBUG3("%u runnable, %u yielded", fr_heap_num_elements(intps->runnable), intps->yielded); } + if (our_el) talloc_free(our_el); + talloc_free(intps); unlang_interpret_set(request, old_intp); request->module = caller;