In mod_cidlookup and several other modules, config parameters
are read from external XML files using the SWITCH_CONFIG_ITEM_STRING_STRDUP
method. These items do not have string_options, and are not freed
with switch_xml_config_cleanup. We therefore need to call switch_safe_free
for config without string_options. We also add switch_xml_config_cleanup
to mod_cidlookup. There are other modules that may be affected but this
commit makes no attempt at fixing those.
Fixes #1752
Macro expands to: switch_status_t mod_cidlookup_shutdown() */
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_cidlookup_shutdown)
{
+ switch_xml_config_cleanup(instructions);
switch_event_unbind(&reload_xml_event);
return SWITCH_STATUS_SUCCESS;
}
char **ptr = (char **) item->ptr;
switch_xml_config_string_options_t *string_options = (switch_xml_config_string_options_t *) item->data;
/* if (using_strdup) */
- if (string_options && !string_options->pool && !string_options->length) {
+ if (!string_options || (!string_options->pool && !string_options->length)) {
switch_safe_free(*ptr);
}
}