From ce99c1bfb5968ea680c6c48a52c407677db2fe82 Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Sat, 11 Feb 2012 08:42:28 -0800 Subject: [PATCH] swscale: enforce a minimum filtersize. At very small dimensions, this calculation could lead to zero-sized filters, which leads to uninitialized output, zero-sized allocations, loop overflows in SIMD that uses do{..}while(i++ Signed-off-by: Reinhard Tartler --- libswscale/utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libswscale/utils.c b/libswscale/utils.c index ac22dfe688..221b993305 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -289,7 +289,7 @@ static int initFilter(int16_t **outFilter, int16_t **filterPos, int *outFilterSi if (xInc <= 1<<16) filterSize= 1 + sizeFactor; // upscale else filterSize= 1 + (sizeFactor*srcW + dstW - 1)/ dstW; - if (filterSize > srcW-2) filterSize=srcW-2; + filterSize = av_clip(filterSize, 1, srcW - 2); FF_ALLOC_OR_GOTO(NULL, filter, dstW*sizeof(*filter)*filterSize, fail);