summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorMatthew Jordan <mjordan@digium.com>2012-04-17 21:23:25 +0000
committerMatthew Jordan <mjordan@digium.com>2012-04-17 21:23:25 +0000
commit7b5eb159e9ad35b0488da542148bcff4d1b26433 (patch)
tree68c42bd869cb4f8d550e8660018a8b18604c088c /main
parent016dfa01f1883a246c8944014ce0ecadff651a81 (diff)
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/ ........ Merged revisions 362377 from http://svn.asterisk.org/svn/asterisk/branches/10 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@362380 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main')
-rw-r--r--main/format_pref.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/main/format_pref.c b/main/format_pref.c
index 852b65035..48fac7731 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];