[FFmpeg-cvslog] cllc: Pad swapped buffer
Derek Buitenhuis
git at videolan.org
Sun Aug 26 02:42:01 CEST 2012
ffmpeg | branch: master | Derek Buitenhuis <derek.buitenhuis at gmail.com> | Fri Aug 24 22:10:19 2012 -0400| [aa7a5651019a2c603aff2c265777206ef4da742a] | committer: Derek Buitenhuis
cllc: Pad swapped buffer
The bitstream buffer must be padded, or the bitstream reader might
read over the end.
Fixes the following valgrind warning:
Use of uninitialised value of size 8 at 0x591BAE: cllc_decode_frame (cllc.c:166)
Signed-off-by: Derek Buitenhuis <derek.buitenhuis at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=aa7a5651019a2c603aff2c265777206ef4da742a
---
libavcodec/cllc.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/libavcodec/cllc.c b/libavcodec/cllc.c
index a151417..d1beb7e 100644
--- a/libavcodec/cllc.c
+++ b/libavcodec/cllc.c
@@ -284,7 +284,8 @@ static int cllc_decode_frame(AVCodecContext *avctx, void *data,
/* Make sure our bswap16'd buffer is big enough */
swapped_buf_new = av_fast_realloc(ctx->swapped_buf,
- &ctx->swapped_buf_size, avpkt->size);
+ &ctx->swapped_buf_size, avpkt->size +
+ FF_INPUT_BUFFER_PADDING_SIZE);
if (!swapped_buf_new) {
av_log(avctx, AV_LOG_ERROR, "Could not realloc swapped buffer.\n");
return AVERROR(ENOMEM);
@@ -313,6 +314,10 @@ static int cllc_decode_frame(AVCodecContext *avctx, void *data,
ctx->dsp.bswap16_buf((uint16_t *) ctx->swapped_buf, (uint16_t *) src,
(avpkt->size - info_offset) / 2);
+ /* Initialize padding to 0 */
+ memset(ctx->swapped_buf + avpkt->size - info_offset,
+ 0, FF_INPUT_BUFFER_PADDING_SIZE);
+
init_get_bits(&gb, ctx->swapped_buf, (avpkt->size - info_offset) * 8);
/*
More information about the ffmpeg-cvslog
mailing list