aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2013-08-24 21:30:46 +0200
committerLuca Barbato <lu_zero@gentoo.org>2013-09-07 10:15:00 +0200
commit4cb3efc206a69e0affceb7715c1d83c3a568b2ed (patch)
tree3e499edd1b24e5e4069066ea2b27ddff10e9c2c2
parent1e9d234c0c62cdce17016a68c948e4f4a8aceea3 (diff)
downloadffmpeg-4cb3efc206a69e0affceb7715c1d83c3a568b2ed.tar.gz
lavf: avoid integer overflow when estimating bitrate
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org (cherry picked from commit df33a58e5311ee9a64a573889b883a80e981af7b) Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
-rw-r--r--libavformat/utils.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c
index e1511ee215..27d9d06667 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -1863,8 +1863,13 @@ static void estimate_timings_from_bit_rate(AVFormatContext *ic)
bit_rate = 0;
for(i=0;i<ic->nb_streams;i++) {
st = ic->streams[i];
- if (st->codec->bit_rate > 0)
- bit_rate += st->codec->bit_rate;
+ if (st->codec->bit_rate > 0) {
+ if (INT_MAX - st->codec->bit_rate > bit_rate) {
+ bit_rate = 0;
+ break;
+ }
+ bit_rate += st->codec->bit_rate;
+ }
}
ic->bit_rate = bit_rate;
}