diff --git a/libswresample/resample.c b/libswresample/resample.c index 581382faa69dea0777cfc9a2c61aa4c838193cf6..77653a7a9fb08126b5c61312feeaa29f4e0dd1a6 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;