diff options
-rw-r--r-- | main/manager_channels.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/main/manager_channels.c b/main/manager_channels.c index 81dafd74b..37269a917 100644 --- a/main/manager_channels.c +++ b/main/manager_channels.c @@ -488,16 +488,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; } @@ -534,10 +535,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; } @@ -553,9 +555,6 @@ struct ast_str *ast_manager_build_channel_state_string_prefix( } } - ast_free(caller_name); - ast_free(connected_name); - return out; } |