summaryrefslogtreecommitdiff
path: root/libavformat/utils.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-09-03 14:28:49 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-09-03 14:45:53 +0200
commitd07d54fd56034bc42b4f3d5242278f0e62f84abb (patch)
treef8ac0ed393615a0c58c5645e48b98bba0edeafb3 /libavformat/utils.c
parentb0ba2bf8c66fdae9761b36647b813c830984fb6c (diff)
parentdf33a58e5311ee9a64a573889b883a80e981af7b (diff)
Merge commit 'df33a58e5311ee9a64a573889b883a80e981af7b'
* commit 'df33a58e5311ee9a64a573889b883a80e981af7b': lavf: avoid integer overflow when estimating bitrate Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/utils.c')
-rw-r--r--libavformat/utils.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 5998a3fa72..c99df71f6d 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -2222,8 +2222,13 @@ static void estimate_timings_from_bit_rate(AVFormatContext *ic)
int 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;
}