From ef1aeb943712d182ebb3fbd4825234b56e098c24 Mon Sep 17 00:00:00 2001 From: Richard Mudgett Date: Wed, 31 Jan 2018 17:27:58 -0600 Subject: [PATCH] manager_channels.c: Reordered ast_manager_build_channel_state_string_prefix() * Made not allocate memory if the channel snapshot is an internal channel. * Free memory earlier when no longer needed. Change-Id: Ia06e0c065f1bd095781aa3f4a626d58fa4d28b38 --- main/manager_channels.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/main/manager_channels.c b/main/manager_channels.c index 71c17322ad..6938c6ee4c 100644 --- a/main/manager_channels.c +++ b/main/manager_channels.c @@ -463,16 +463,17 @@ struct ast_str *ast_manager_build_channel_state_string_prefix( const struct ast_channel_snapshot *snapshot, const char *prefix) { - struct ast_str *out = ast_str_create(1024); - int res = 0; - char *caller_name, *connected_name; + struct ast_str *out; + char *caller_name; + char *connected_name; + int res; - if (!out) { + if (snapshot->tech_properties & AST_CHAN_TP_INTERNAL) { return NULL; } - if (snapshot->tech_properties & AST_CHAN_TP_INTERNAL) { - ast_free(out); + out = ast_str_create(1024); + if (!out) { return NULL; } @@ -509,10 +510,11 @@ struct ast_str *ast_manager_build_channel_state_string_prefix( prefix, snapshot->uniqueid, prefix, snapshot->linkedid); + ast_free(caller_name); + ast_free(connected_name); + if (!res) { ast_free(out); - ast_free(caller_name); - ast_free(connected_name); return NULL; } @@ -528,9 +530,6 @@ struct ast_str *ast_manager_build_channel_state_string_prefix( } } - ast_free(caller_name); - ast_free(connected_name); - return out; } -- 2.47.2