From: Matthew Jordan Date: Tue, 17 Apr 2012 21:22:37 +0000 (+0000) Subject: Handle case where an unknown format is used to get the preferred codec size X-Git-Tag: 10.5.0-rc1~52 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=67752759c2ece3a6921dad3343fde935e0c9ddcf;p=thirdparty%2Fasterisk.git Handle case where an unknown format is used to get the preferred codec size In ast_codec_pref_getsize, if an unknown format is passed to the method, no preferred codec will be selected and a negative number will be used to index into the format list. The method now logs an unknown format as a warning, and returns an empty format list. (issue ASTERISK-19655) Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/1863/ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@362377 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/main/format_pref.c b/main/format_pref.c index 852b650350..48fac7731d 100644 --- a/main/format_pref.c +++ b/main/format_pref.c @@ -274,6 +274,11 @@ struct ast_format_list ast_codec_pref_getsize(struct ast_codec_pref *pref, struc } } + if (idx < 0) { + ast_log(AST_LOG_WARNING, "Format %s unknown; unable to get preferred codec packet size\n", ast_getformatname(format)); + return fmt; + } + for (x = 0; x < f_len; x++) { if (pref->order[x] == (idx + 1)) { framems = pref->framing[x];