aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-04-08 00:19:07 +0200
committerMichael Niedermayer <michaelni@gmx.at>2014-04-22 00:21:28 +0200
commit0143eb91098f7de89ba5f6885a91f0aa3e6e34ed (patch)
tree04d2ef7fa7868191cabfa82c22bb2723c02e1e97
parent93fe53da91f2223e354ca57e7b8de86e513a3469 (diff)
downloadffmpeg-0143eb91098f7de89ba5f6885a91f0aa3e6e34ed.tar.gz
swresample/resample: Limit filter length
Related to CID1197063 The limit choosen is arbitrary and much larger than what makes sense. It avoids the need for checking arithmetic operations with the length for overflow Signed-off-by: Michael Niedermayer <michaelni@gmx.at> (cherry picked from commit f9158b01d0f3effb58e87fb07db0382bc1e47de5) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libswresample/resample.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libswresample/resample.c b/libswresample/resample.c
index 6cd2b8cbcb..96bc921eab 100644
--- a/libswresample/resample.c
+++ b/libswresample/resample.c
@@ -229,6 +229,11 @@ static ResampleContext *resample_init(ResampleContext *c, int out_rate, int in_r
av_assert0(0);
}
+ if (filter_size/factor > INT32_MAX/256) {
+ av_log(NULL, AV_LOG_ERROR, "Filter length too large\n");
+ goto error;
+ }
+
c->phase_shift = phase_shift;
c->phase_mask = phase_count - 1;
c->linear = linear;