diff options
author | Corey Farrell <git@cfware.com> | 2015-04-21 16:17:33 -0400 |
---|---|---|
committer | Corey Farrell <git@cfware.com> | 2015-04-21 15:36:13 -0500 |
commit | ad1a118632098a5d2d746d157f4c6f3d15694f65 (patch) | |
tree | 968617d00cbc4369da2694eaca59da061a2fc0c0 /main/channel_internal_api.c | |
parent | d08446ec36600348090eb2451c5a9a7aadd633de (diff) |
Check for ao2_alloc failure in __ast_channel_internal_alloc.
Fix a crash that could occur in __ast_channel_internal_alloc if
ao2_alloc fails.
ASTERISK-24991 #close
Change-Id: I4ca89189eb22f907408cb87d0a1645cfe1314a90
Diffstat (limited to 'main/channel_internal_api.c')
-rw-r--r-- | main/channel_internal_api.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/main/channel_internal_api.c b/main/channel_internal_api.c index 624bdd1cb..835b9ce37 100644 --- a/main/channel_internal_api.c +++ b/main/channel_internal_api.c @@ -1457,6 +1457,10 @@ struct ast_channel *__ast_channel_internal_alloc(void (*destructor)(void *obj), tmp = ao2_alloc(sizeof(*tmp), destructor); #endif + if (!tmp) { + return NULL; + } + if ((ast_string_field_init(tmp, 128))) { return ast_channel_unref(tmp); } |