Skip to content
Snippets Groups Projects
Commit 46cf643c authored by Ashley Sanders's avatar Ashley Sanders
Browse files

chan_pjsip: Creating Channel Causes Asterisk to Crash When Duplicate AOR

            Sections Exist in pjsip.conf

This patch modifies the current loading strategy of the pjsip configuration. If
duplicate sections (e.g. sections containing the same [id/type]) are defined in
[pjsip.conf], the loader will consider the configuration for the given type as
invalid when the duplicate section is encountered. The entire configuration
(including what was previously loaded) for the duplicate [id/type] sections
will be rejected and destroyed, an error message is logged and the load
processing for the given stops.

ASTERISK-24996
Reported By: Ashley Sanders

Change-Id: I35090ca4cd40f1f34881dfe701a329145c347aef
parent d7f47883
No related branches found
No related tags found
No related merge requests found
......@@ -294,6 +294,18 @@ static void sorcery_config_internal_load(void *data, const struct ast_sorcery *s
continue;
}
/* Confirm an object with this id does not already exist in the bucket.
* If it exists, however, the configuration is invalid so stop
* processing and destroy it. */
obj = ao2_find(objects, id, OBJ_KEY;
if (obj) {
ast_log(LOG_ERROR, "Config file '%s' could not be loaded; configuration contains a duplicate object: '%s' of type '%s'\n",
config->filename, id, type);
ast_config_destroy(cfg);
return;
}
if (!(obj = ast_sorcery_alloc(sorcery, type, id)) ||
ast_sorcery_objectset_apply(sorcery, obj, ast_category_first(category))) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment