diff --git a/pbx.c b/pbx.c index c1254ae6029bf36ac37b33495b38428d0736c464..1238a7cd370ef94d79571723652fdec43f07cf8d 100644 --- a/pbx.c +++ b/pbx.c @@ -3422,12 +3422,11 @@ int ast_unregister_application(const char *app) struct ast_context *ast_context_create(struct ast_context **extcontexts, const char *name, const char *registrar) { struct ast_context *tmp, **local_contexts; - int length; - length = sizeof(struct ast_context); - length += strlen(name) + 1; + int length = sizeof(struct ast_context) + strlen(name) + 1; + if (!extcontexts) { - local_contexts = &contexts; ast_mutex_lock(&conlock); + local_contexts = &contexts; } else local_contexts = extcontexts;