From: Richard Mudgett Date: Wed, 31 Jan 2018 23:27:58 +0000 (-0600) Subject: manager_channels.c: Reordered ast_manager_build_channel_state_string_prefix() X-Git-Tag: 13.20.0-rc1~44^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ef1aeb943712d182ebb3fbd4825234b56e098c24;p=thirdparty%2Fasterisk.git 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 --- 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; }