]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Correct references to "input_pairs" for exec calls
authorNick Porter <nick@portercomputing.co.uk>
Tue, 1 Jun 2021 10:31:25 +0000 (11:31 +0100)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 1 Jun 2021 13:15:08 +0000 (09:15 -0400)
src/modules/rlm_exec/rlm_exec.c

index e7e279f7f6010dab5f09aa23e85e349e9042a0d1..4dd628fcb0ada850df1539d0c102abbe17cf4139 100644 (file)
@@ -261,24 +261,19 @@ static unlang_action_t mod_exec_nowait_resume(rlm_rcode_t *p_result, module_ctx_
 {
        rlm_exec_t const        *inst = talloc_get_type_abort_const(mctx->instance, rlm_exec_t);
        fr_value_box_list_t     *box = talloc_get_type_abort(rctx, fr_value_box_list_t);
-       fr_pair_list_t          env_pairs;
+       fr_pair_list_t          *env_pairs = NULL;
 
-       fr_pair_list_init(&env_pairs);
        /*
         *      Decide what input/output the program takes.
         */
        if (inst->input) {
-               fr_pair_list_t *input_pairs;
-
-               input_pairs = tmpl_list_head(request, inst->input_list);
-               if (!input_pairs) {
+               env_pairs = tmpl_list_head(request, inst->input_list);
+               if (!env_pairs) {
                        RETURN_MODULE_INVALID;
                }
-
-               env_pairs = *input_pairs;
        }
 
-       if (fr_exec_nowait(request, box, &env_pairs) < 0) {
+       if (fr_exec_nowait(request, box, env_pairs) < 0) {
                RPEDEBUG("Failed executing program");
                RETURN_MODULE_FAIL;
        }
@@ -396,10 +391,9 @@ static unlang_action_t CC_HINT(nonnull) mod_exec_dispatch(rlm_rcode_t *p_result,
 {
        rlm_exec_t const        *inst = talloc_get_type_abort_const(mctx->instance, rlm_exec_t);
        rlm_exec_ctx_t          *m;
-       fr_pair_list_t          env_pairs;
+       fr_pair_list_t          *env_pairs = NULL;
        TALLOC_CTX              *ctx;
 
-       fr_pair_list_init(&env_pairs);
        if (!inst->tmpl) {
                RDEBUG("This module requires 'program' to be set.");
                RETURN_MODULE_FAIL;
@@ -425,12 +419,8 @@ static unlang_action_t CC_HINT(nonnull) mod_exec_dispatch(rlm_rcode_t *p_result,
         *      Decide what input/output the program takes.
         */
        if (inst->input) {
-               fr_pair_list_t *input_pairs;
-
-               input_pairs = tmpl_list_head(request, inst->input_list);
-               if (!input_pairs) RETURN_MODULE_INVALID;
-
-               env_pairs = *input_pairs;
+               env_pairs = tmpl_list_head(request, inst->input_list);
+               if (!env_pairs) RETURN_MODULE_INVALID;
        }
 
        if (inst->output) {
@@ -442,7 +432,7 @@ static unlang_action_t CC_HINT(nonnull) mod_exec_dispatch(rlm_rcode_t *p_result,
        m = talloc_zero(ctx, rlm_exec_ctx_t);
        fr_value_box_list_init(&m->box);
 
-       return unlang_module_yield_to_tmpl(m, &m->box, &m->status, request, inst->tmpl, &env_pairs, mod_exec_wait_resume, NULL, m);
+       return unlang_module_yield_to_tmpl(m, &m->box, &m->status, request, inst->tmpl, env_pairs, mod_exec_wait_resume, NULL, m);
 }