From: Arran Cudbard-Bell Date: Thu, 22 Jun 2017 00:41:34 +0000 (-0400) Subject: Fix crash when module instantiation fails X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7606f8a11fcf566894989d355dde3282fe85a76b;p=thirdparty%2Ffreeradius-server.git Fix crash when module instantiation fails --- diff --git a/src/main/modules.c b/src/main/modules.c index 696a40102d0..c986f33b99d 100644 --- a/src/main/modules.c +++ b/src/main/modules.c @@ -746,6 +746,8 @@ int modules_instantiate(CONF_SECTION *root) modules = cf_section_find(root, "modules", NULL); if (!modules) return 0; + DEBUG2("%s: #### Instantiating modules ####", main_config.name); + if (cf_data_walk(modules, module_instance_t, _module_instantiate, NULL) < 0) return -1; #ifndef NDEBUG @@ -781,12 +783,11 @@ static int _module_instance_free(module_instance_t *mod_inst) pthread_mutex_destroy(mod_inst->mutex); } - xlat_unregister(mod_inst->dl_inst->data, mod_inst->name, NULL); - /* * Remove all xlat's registered to module instance. */ - if (mod_inst->dl_inst->data) { + if (mod_inst->dl_inst && mod_inst->dl_inst->data) { + xlat_unregister(mod_inst->dl_inst->data, mod_inst->name, NULL); /* * Remove any registered paircompares. */ @@ -1007,7 +1008,7 @@ int modules_bootstrap(CONF_SECTION *root) return 0; } - DEBUG2("%s: #### Loading modules ####", main_config.name); + DEBUG2("%s: #### Bootstrapping modules ####", main_config.name); cf_log_debug(modules, " modules {");