From: Alan T. DeKok Date: Thu, 9 Nov 2017 14:50:34 +0000 (-0500) Subject: set destructor for freeing the link, too X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e53a89f2d752b4650e91c8335651ab17f44eb4da;p=thirdparty%2Ffreeradius-server.git set destructor for freeing the link, too --- diff --git a/src/modules/rlm_radius/rlm_radius.c b/src/modules/rlm_radius/rlm_radius.c index 88ddbced882..02d2c442ce4 100644 --- a/src/modules/rlm_radius/rlm_radius.c +++ b/src/modules/rlm_radius/rlm_radius.c @@ -523,7 +523,6 @@ static rlm_rcode_t CC_HINT(nonnull) mod_process(void *instance, void *thread, RE } link->request = request; - fr_dlist_insert_tail(&t->running, &link->entry); link->rcode = RLM_MODULE_FAIL; @@ -534,6 +533,9 @@ static rlm_rcode_t CC_HINT(nonnull) mod_process(void *instance, void *thread, RE */ radius_fixups(inst, request); + fr_dlist_insert_tail(&t->running, &link->entry); + talloc_set_destructor(link, mod_link_free); + /* * Push the request and it's link to the IO submodule. * @@ -543,13 +545,10 @@ static rlm_rcode_t CC_HINT(nonnull) mod_process(void *instance, void *thread, RE */ rcode = inst->io->push(inst->io_instance, request, link, t->thread_io_ctx); if (rcode != RLM_MODULE_YIELD) { - fr_dlist_remove(&link->entry); talloc_free(link); return rcode; } - talloc_set_destructor(link, mod_link_free); - return unlang_module_yield(request, mod_radius_resume, mod_radius_signal, link); }