diff --git a/main/cel.c b/main/cel.c index 31cd04542a..45726e0702 100644 --- a/main/cel.c +++ b/main/cel.c @@ -1565,7 +1565,6 @@ int ast_cel_engine_init(void) ao2_global_obj_replace_unref(cel_linkedids, container); ao2_cleanup(container); if (!container) { - cel_engine_cleanup(); return -1; } @@ -1574,17 +1573,14 @@ int ast_cel_engine_init(void) ao2_global_obj_replace_unref(cel_dialstatus_store, container); ao2_cleanup(container); if (!container) { - cel_engine_cleanup(); return -1; } if (STASIS_MESSAGE_TYPE_INIT(cel_generic_type)) { - cel_engine_cleanup(); return -1; } if (ast_cli_register(&cli_status)) { - cel_engine_cleanup(); return -1; } @@ -1592,12 +1588,10 @@ int ast_cel_engine_init(void) ao2_global_obj_replace_unref(cel_backends, container); ao2_cleanup(container); if (!container) { - cel_engine_cleanup(); return -1; } if (aco_info_init(&cel_cfg_info)) { - cel_engine_cleanup(); return -1; } @@ -1610,7 +1604,6 @@ int ast_cel_engine_init(void) struct cel_config *cel_cfg = cel_config_alloc(); if (!cel_cfg) { - cel_engine_cleanup(); return -1; } @@ -1623,12 +1616,10 @@ int ast_cel_engine_init(void) } if (create_subscriptions()) { - cel_engine_cleanup(); return -1; } if (ast_cel_check_enabled() && create_routes()) { - cel_engine_cleanup(); return -1; } diff --git a/main/core_local.c b/main/core_local.c index a5918f525c..12e41f99ef 100644 --- a/main/core_local.c +++ b/main/core_local.c @@ -1074,7 +1074,6 @@ static void local_shutdown(void) int ast_local_init(void) { - if (STASIS_MESSAGE_TYPE_INIT(ast_local_optimization_begin_type)) { return -1; } @@ -1094,17 +1093,13 @@ int ast_local_init(void) locals = ao2_container_alloc_list(AO2_ALLOC_OPT_LOCK_MUTEX, 0, NULL, locals_cmp_cb); if (!locals) { - ao2_cleanup(local_tech.capabilities); - local_tech.capabilities = NULL; return -1; } /* Make sure we can register our channel type */ if (ast_channel_register(&local_tech)) { ast_log(LOG_ERROR, "Unable to register channel class 'Local'\n"); - ao2_ref(locals, -1); - ao2_cleanup(local_tech.capabilities); - local_tech.capabilities = NULL; + return -1; } ast_cli_register_multiple(cli_local, ARRAY_LEN(cli_local)); diff --git a/main/devicestate.c b/main/devicestate.c index faba144aa4..4bc0bed399 100644 --- a/main/devicestate.c +++ b/main/devicestate.c @@ -913,24 +913,20 @@ int devstate_init(void) } device_state_topic_all = stasis_topic_create("ast_device_state_topic"); if (!device_state_topic_all) { - devstate_cleanup(); return -1; } device_state_topic_pool = stasis_topic_pool_create(ast_device_state_topic_all()); if (!device_state_topic_pool) { - devstate_cleanup(); return -1; } device_state_cache = stasis_cache_create_full(device_state_get_id, device_state_aggregate_calc, device_state_aggregate_publish); if (!device_state_cache) { - devstate_cleanup(); return -1; } device_state_topic_cached = stasis_caching_topic_create(ast_device_state_topic_all(), device_state_cache); if (!device_state_topic_cached) { - devstate_cleanup(); return -1; } @@ -938,7 +934,6 @@ int devstate_init(void) devstate_change_cb, NULL); if (!devstate_message_sub) { ast_log(LOG_ERROR, "Failed to create subscription creating uncached device state aggregate events.\n"); - devstate_cleanup(); return -1; } diff --git a/main/dsp.c b/main/dsp.c index 0609256d47..e3e1924383 100644 --- a/main/dsp.c +++ b/main/dsp.c @@ -2404,17 +2404,18 @@ static void test_dsp_shutdown(void) int ast_dsp_init(void) { - int res = _dsp_init(0); + if (_dsp_init(0)) { + return -1; + } #ifdef TEST_FRAMEWORK - if (!res) { - AST_TEST_REGISTER(test_dsp_fax_detect); - AST_TEST_REGISTER(test_dsp_dtmf_detect); + AST_TEST_REGISTER(test_dsp_fax_detect); + AST_TEST_REGISTER(test_dsp_dtmf_detect); - ast_register_cleanup(test_dsp_shutdown); - } + ast_register_cleanup(test_dsp_shutdown); #endif - return res; + + return 0; } int ast_dsp_reload(void) diff --git a/main/features.c b/main/features.c index 2ca56bcd32..21e6c22b52 100644 --- a/main/features.c +++ b/main/features.c @@ -1167,17 +1167,10 @@ int ast_features_init(void) int res; res = ast_features_config_init(); - if (res) { - return res; - } res |= ast_register_application2(app_bridge, bridge_exec, NULL, NULL, NULL); res |= ast_manager_register_xml_core("Bridge", EVENT_FLAG_CALL, action_bridge); - if (res) { - features_shutdown(); - } else { - ast_register_cleanup(features_shutdown); - } + ast_register_cleanup(features_shutdown); return res; } diff --git a/main/features_config.c b/main/features_config.c index e2d405740f..3dac8272e0 100644 --- a/main/features_config.c +++ b/main/features_config.c @@ -2000,9 +2000,5 @@ int ast_features_config_init(void) res |= __ast_custom_function_register(&featuremap_function, NULL); res |= ast_cli_register_multiple(cli_features_config, ARRAY_LEN(cli_features_config)); - if (res) { - ast_features_config_shutdown(); - } - return res; } diff --git a/main/indications.c b/main/indications.c index 4888680761..8ca1068131 100644 --- a/main/indications.c +++ b/main/indications.c @@ -1173,13 +1173,13 @@ static void indications_shutdown(void) /*! \brief Load indications module */ int ast_indications_init(void) { - if (!(ast_tone_zones = ao2_container_alloc(NUM_TONE_ZONE_BUCKETS, - ast_tone_zone_hash, ast_tone_zone_cmp))) { + ast_tone_zones = ao2_container_alloc(NUM_TONE_ZONE_BUCKETS, + ast_tone_zone_hash, ast_tone_zone_cmp); + if (!ast_tone_zones) { return -1; } if (load_indications(0)) { - indications_shutdown(); return -1; } diff --git a/main/pbx_builtins.c b/main/pbx_builtins.c index 605e0c97e6..44418b8add 100644 --- a/main/pbx_builtins.c +++ b/main/pbx_builtins.c @@ -1433,7 +1433,6 @@ int load_pbx_builtins(void) for (x = 0; x < ARRAY_LEN(builtins); x++) { if (ast_register_application2(builtins[x].name, builtins[x].execute, NULL, NULL, NULL)) { ast_log(LOG_ERROR, "Unable to register builtin application '%s'\n", builtins[x].name); - unload_pbx_builtins(); return -1; } } diff --git a/main/sorcery.c b/main/sorcery.c index c20854f88b..2418ce3eed 100644 --- a/main/sorcery.c +++ b/main/sorcery.c @@ -383,20 +383,17 @@ int ast_sorcery_init(void) wizards = ao2_container_alloc_hash(AO2_ALLOC_OPT_LOCK_MUTEX, 0, WIZARD_BUCKETS, ast_sorcery_internal_wizard_hash_fn, NULL, ast_sorcery_internal_wizard_cmp_fn); if (!wizards) { - sorcery_cleanup(); return -1; } observers = ao2_container_alloc_list(AO2_ALLOC_OPT_LOCK_RWLOCK, 0, NULL, NULL); if (!observers) { - sorcery_cleanup(); return -1; } instances = ao2_container_alloc_hash(AO2_ALLOC_OPT_LOCK_RWLOCK, 0, INSTANCE_BUCKETS, ast_sorcery_hash_fn, NULL, ast_sorcery_cmp_fn); if (!instances) { - sorcery_cleanup(); return -1; }