From 12d7c0793be4348751ba1303d8cbbb0750f1f33b Mon Sep 17 00:00:00 2001 From: David Conrad Date: Fri, 5 Jun 2009 23:39:11 +0000 Subject: [PATCH] Ensure that the extradata buffer is padded appripriately in the ogg demuxer. Spotted by valgrind. Originally committed as revision 19119 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/oggparsespeex.c | 3 ++- libavformat/oggparsetheora.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/libavformat/oggparsespeex.c b/libavformat/oggparsespeex.c index 0ac087d7ae..140a58a9eb 100644 --- a/libavformat/oggparsespeex.c +++ b/libavformat/oggparsespeex.c @@ -47,7 +47,8 @@ static int speex_header(AVFormatContext *s, int idx) { st->codec->channels = AV_RL32(p + 48); st->codec->frame_size = AV_RL32(p + 56); st->codec->extradata_size = os->psize; - st->codec->extradata = av_malloc(st->codec->extradata_size); + st->codec->extradata = av_malloc(st->codec->extradata_size + + FF_INPUT_BUFFER_PADDING_SIZE); memcpy(st->codec->extradata, p, st->codec->extradata_size); st->time_base.num = 1; diff --git a/libavformat/oggparsetheora.c b/libavformat/oggparsetheora.c index 96c432f993..e62f288a7d 100644 --- a/libavformat/oggparsetheora.c +++ b/libavformat/oggparsetheora.c @@ -106,7 +106,8 @@ theora_header (AVFormatContext * s, int idx) vorbis_comment (s, os->buf + os->pstart + 7, os->psize - 8); } - st->codec->extradata = av_realloc (st->codec->extradata, cds); + st->codec->extradata = av_realloc (st->codec->extradata, + cds + FF_INPUT_BUFFER_PADDING_SIZE); cdp = st->codec->extradata + st->codec->extradata_size; *cdp++ = os->psize >> 8; *cdp++ = os->psize & 0xff;