diff options
author | Corey Farrell <git@cfware.com> | 2016-08-03 16:39:46 -0400 |
---|---|---|
committer | Corey Farrell <git@cfware.com> | 2016-08-03 16:39:46 -0400 |
commit | 805f105f8898beb0be0cdf5a7df653fdb03f730e (patch) | |
tree | 5bba3aa108eae0332e3e74fa62b7adae4c625a2e /main/channel.c | |
parent | 9dc8cfabd5fa240a26972dac5c6ce396dadb7d75 (diff) |
Add missing checks during startup.
This ensures startup is canceled due to allocation failures from the
following initializations.
* channel.c: ast_channels_init
* config_options.c: aco_init
ASTERISK-26265 #close
Change-Id: I911ed08fa2a3be35de55903e0225957bcdbe9611
Diffstat (limited to 'main/channel.c')
-rw-r--r-- | main/channel.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/main/channel.c b/main/channel.c index 73f795ffa..853935da3 100644 --- a/main/channel.c +++ b/main/channel.c @@ -7803,13 +7803,14 @@ static void channels_shutdown(void) ast_channel_unregister(&surrogate_tech); } -void ast_channels_init(void) +int ast_channels_init(void) { channels = ao2_container_alloc(NUM_CHANNEL_BUCKETS, ast_channel_hash_cb, ast_channel_cmp_cb); - if (channels) { - ao2_container_register("channels", channels, prnt_channel_key); + if (!channels) { + return -1; } + ao2_container_register("channels", channels, prnt_channel_key); ast_channel_register(&surrogate_tech); @@ -7823,6 +7824,7 @@ void ast_channels_init(void) ast_register_cleanup(channels_shutdown); + return 0; } /*! \brief Print call group and pickup group ---*/ |