{
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;
}
{
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;
* 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) {
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);
}