summaryrefslogtreecommitdiff
path: root/libavformat/xwma.c
diff options
context:
space:
mode:
authorAlex Converse <alex.converse@gmail.com>2012-03-21 10:58:07 -0700
committerAlex Converse <alex.converse@gmail.com>2012-03-22 13:57:12 -0700
commit5023b89bba198b2f8e43b7f555aeb9c30d33db9f (patch)
tree2ba6f7be3da47d53bb45500d4ba30fc53045d179 /libavformat/xwma.c
parent86f2ae06b92d42580ae7ebd86d52c9b7acbc2f13 (diff)
xwma: Validate channels and bits_per_coded_sample.
This prevents a SIGFPE later on. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
Diffstat (limited to 'libavformat/xwma.c')
-rw-r--r--libavformat/xwma.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/libavformat/xwma.c b/libavformat/xwma.c
index 2c6ee114bd..7b34b96433 100644
--- a/libavformat/xwma.c
+++ b/libavformat/xwma.c
@@ -115,6 +115,17 @@ static int xwma_read_header(AVFormatContext *s)
}
}
+ if (!st->codec->channels) {
+ av_log(s, AV_LOG_WARNING, "Invalid channel count: %d\n",
+ st->codec->channels);
+ return AVERROR_INVALIDDATA;
+ }
+ if (!st->codec->bits_per_coded_sample) {
+ av_log(s, AV_LOG_WARNING, "Invalid bits_per_coded_sample: %d\n",
+ st->codec->bits_per_coded_sample);
+ return AVERROR_INVALIDDATA;
+ }
+
/* set the sample rate */
avpriv_set_pts_info(st, 64, 1, st->codec->sample_rate);