aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRonald S. Bultje <rsbultje@gmail.com>2012-08-02 20:46:09 -0700
committerReinhard Tartler <siretart@tauware.de>2014-02-28 23:07:40 -0500
commit2c1d84499bfe06d75e9160b824eeffd9f5587337 (patch)
tree31cd6b85595890407f1aaa633e6bd9add4420ce6
parentde0e442e9d6754ae1ad56a8372f45f6aa5e51012 (diff)
downloadffmpeg-2c1d84499bfe06d75e9160b824eeffd9f5587337.tar.gz
lagarith: pad RGB buffer by 1 byte.
For left HFYU prediction, we predict from the buffer buf+1 using 8- or 16-byte reads. This means that aligning the buffer by 16 bytes is in itself not sufficient, because if the width itself is 16- or 8-byte aligned, the buffer will not be padded, and thus a read of size 16 at buf+1 will overflow boundaries at the right edge. Padding the buffer by 1 byte is sufficient to not overflow its boundaries. Fixes bug 342. (cherry picked from commit 98d0d19208959766a58f13dd6a678d1f765a26ac)
-rw-r--r--libavcodec/lagarith.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavcodec/lagarith.c b/libavcodec/lagarith.c
index f04d89b305..93e0253091 100644
--- a/libavcodec/lagarith.c
+++ b/libavcodec/lagarith.c
@@ -515,7 +515,7 @@ static int lag_decode_frame(AVCodecContext *avctx,
if (!l->rgb_planes) {
l->rgb_stride = FFALIGN(avctx->width, 16);
- l->rgb_planes = av_malloc(l->rgb_stride * avctx->height * planes);
+ l->rgb_planes = av_malloc(l->rgb_stride * avctx->height * planes + 1);
if (!l->rgb_planes) {
av_log(avctx, AV_LOG_ERROR, "cannot allocate temporary buffer\n");
return AVERROR(ENOMEM);