diff options
author | Ronald S. Bultje <rsbultje@gmail.com> | 2012-08-02 20:46:09 -0700 |
---|---|---|
committer | Ronald S. Bultje <rsbultje@gmail.com> | 2012-08-03 11:09:17 -0700 |
commit | 98d0d19208959766a58f13dd6a678d1f765a26ac (patch) | |
tree | 6b2794bab449252d1c2bb64d6b58f4ba3cac758f /libavcodec | |
parent | da6505ad2fc8ef045401a3d9f980586ac5cf808c (diff) | |
download | ffmpeg-98d0d19208959766a58f13dd6a678d1f765a26ac.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.
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/lagarith.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libavcodec/lagarith.c b/libavcodec/lagarith.c index 35f5a07e4c..e72674c481 100644 --- a/libavcodec/lagarith.c +++ b/libavcodec/lagarith.c @@ -553,7 +553,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); |