]> git.sesse.net Git - ffmpeg/commitdiff
swscale: add padding to conversion buffer.
authorSean McGovern <gseanmcg@gmail.com>
Fri, 11 Nov 2011 00:16:58 +0000 (19:16 -0500)
committerRonald S. Bultje <rsbultje@gmail.com>
Fri, 11 Nov 2011 15:44:35 +0000 (07:44 -0800)
Altivec does unaligned reads from this buffer in
hscale_altivec_real(), and can thus read up to 16 bytes beyond
the end of the buffer. Therefore, add an extra 16 bytes of
padding at the end of the conversion buffer.

This fixes fate-lavfi-pixfmts_scale on AltiVec-enabled builds
under valgrind.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
libswscale/utils.c

index 862b2736f611de4732c7f64756e733fcb370563a..51bec62717eeb2d0ebb91370e6d15aaa24ee3ac2 100644 (file)
@@ -871,7 +871,7 @@ int sws_init_context(SwsContext *c, SwsFilter *srcFilter, SwsFilter *dstFilter)
     if (c->dstBpc == 16)
         dst_stride <<= 1;
     FF_ALLOC_OR_GOTO(c, c->formatConvBuffer,
-                     FFALIGN(srcW, 16) * 2 * FFALIGN(c->srcBpc, 8) >> 3,
+                     (FFALIGN(srcW, 16) * 2 * FFALIGN(c->srcBpc, 8) >> 3) + 16,
                      fail);
     if (HAVE_MMX2 && cpu_flags & AV_CPU_FLAG_MMX2 && c->srcBpc == 8 && c->dstBpc <= 10) {
         c->canMMX2BeUsed= (dstW >=srcW && (dstW&31)==0 && (srcW&15)==0) ? 1 : 0;