diff options
author | David Conrad <lessen42@gmail.com> | 2009-06-05 23:39:11 +0000 |
---|---|---|
committer | David Conrad <lessen42@gmail.com> | 2009-06-05 23:39:11 +0000 |
commit | 12d7c0793be4348751ba1303d8cbbb0750f1f33b (patch) | |
tree | bfb017cf649f7e5ecf8dcc23cf2915706292f39d | |
parent | 8dbd0a95eea3b30dcef8ab4d0424b624f982313a (diff) | |
download | ffmpeg-12d7c0793be4348751ba1303d8cbbb0750f1f33b.tar.gz |
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
-rw-r--r-- | libavformat/oggparsespeex.c | 3 | ||||
-rw-r--r-- | 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; |