From: Arran Cudbard-Bell Date: Tue, 14 May 2024 00:25:26 +0000 (-0600) Subject: Dup the parent config section before calling conf_parse for child transport modules X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4af40d79e81a49984e32667f00839c32d8eec846;p=thirdparty%2Ffreeradius-server.git Dup the parent config section before calling conf_parse for child transport modules --- diff --git a/src/lib/io/master.c b/src/lib/io/master.c index dbb33feff2e..e89506578ec 100644 --- a/src/lib/io/master.c +++ b/src/lib/io/master.c @@ -492,6 +492,7 @@ static fr_io_connection_t *fr_io_connection_alloc(fr_io_instance_t const *inst, * called when the instance data is freed. */ if (!nak) { + CONF_SECTION *cs; char *inst_name; if (inst->max_connections || client->radclient->limit.max_connections) { @@ -522,7 +523,10 @@ static fr_io_connection_t *fr_io_connection_alloc(fr_io_instance_t const *inst, inst_name = talloc_asprintf(NULL, "%"PRIu64, thread->client_id++); mi = module_instance_copy(inst->clients, inst->submodule, inst_name); - if (module_instance_conf_parse(mi, inst->submodule->conf) < 0) { + cs = cf_section_dup(mi, NULL, inst->submodule->conf, + cf_section_name1(inst->submodule->conf), + cf_section_name2(inst->submodule->conf), false); + if (module_instance_conf_parse(mi, cs) < 0) { cf_log_err(inst->server_cs, "Failed parsing module config"); goto cleanup; }