chan_iax2.c: Fix ref leak in iax2_request().
authorRichard Mudgett <rmudgett@digium.com>
Thu, 9 Apr 2015 16:09:58 +0000 (16:09 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Thu, 9 Apr 2015 16:09:58 +0000 (16:09 +0000)
* Increased warning message format capability string buffer size in
iax2_request().

Review: https://reviewboard.asterisk.org/r/4601/
........

Merged revisions 434510 from http://svn.asterisk.org/svn/asterisk/branches/13

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@434511 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_iax2.c

index b27b813..aaf3180 100644 (file)
@@ -12464,16 +12464,18 @@ static struct ast_channel *iax2_request(const char *type, struct ast_format_cap
                if (!ast_format_cap_count(joint)) {
                        struct ast_format *best_fmt_cap = NULL;
                        struct ast_format *best_fmt_native = NULL;
+
                        res = ast_translator_best_choice(cap, ast_channel_nativeformats(c), &best_fmt_cap, &best_fmt_native);
                        if (res < 0) {
-                               struct ast_str *native_cap_buf = ast_str_alloca(64);
-                               struct ast_str *cap_buf = ast_str_alloca(64);
+                               struct ast_str *native_cap_buf = ast_str_alloca(256);
+                               struct ast_str *cap_buf = ast_str_alloca(256);
 
                                ast_log(LOG_WARNING, "Unable to create translator path for %s to %s on %s\n",
                                        ast_format_cap_get_names(ast_channel_nativeformats(c), &native_cap_buf),
                                        ast_format_cap_get_names(cap, &cap_buf),
                                        ast_channel_name(c));
                                ast_hangup(c);
+                               ao2_ref(joint, -1);
                                return NULL;
                        }
                        ast_format_cap_append(joint, best_fmt_native, 0);