From 1b9ca38d9d06d319fffd61d27e4eb385d6572ba8 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer <michaelni@gmx.at> Date: Thu, 27 Oct 2011 14:34:45 +0200 Subject: [PATCH] resample2: fix potential overflow Signed-off-by: Michael Niedermayer <michaelni@gmx.at> --- libavcodec/resample2.c | 5 ++--- libswresample/resample2.c | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/libavcodec/resample2.c b/libavcodec/resample2.c index fc8ffea4665..5c425587abe 100644 --- a/libavcodec/resample2.c +++ b/libavcodec/resample2.c @@ -248,10 +248,9 @@ int av_resample(AVResampleContext *c, short *dst, short *src, int *consumed, int dst[dst_index] = src[index2>>32]; index2 += incr; } - frac += dst_index * dst_incr_frac; index += dst_index * dst_incr; - index += frac / c->src_incr; - frac %= c->src_incr; + index += (frac + dst_index * (int64_t)dst_incr_frac) / c->src_incr; + frac = (frac + dst_index * (int64_t)dst_incr_frac) % c->src_incr; }else{ for(dst_index=0; dst_index < dst_size; dst_index++){ FELEM *filter= c->filter_bank + c->filter_length*(index & c->phase_mask); diff --git a/libswresample/resample2.c b/libswresample/resample2.c index 5a2082478b5..02f29bacf18 100644 --- a/libswresample/resample2.c +++ b/libswresample/resample2.c @@ -269,10 +269,9 @@ int swr_resample(AVResampleContext *c, short *dst, const short *src, int *consum dst[dst_index] = src[index2>>32]; index2 += incr; } - frac += dst_index * dst_incr_frac; index += dst_index * dst_incr; - index += frac / c->src_incr; - frac %= c->src_incr; + index += (frac + dst_index * (int64_t)dst_incr_frac) / c->src_incr; + frac = (frac + dst_index * (int64_t)dst_incr_frac) % c->src_incr; }else{ for(dst_index=0; dst_index < dst_size; dst_index++){ FELEM *filter= c->filter_bank + c->filter_length*(index & c->phase_mask); -- GitLab