From 12d7c0793be4348751ba1303d8cbbb0750f1f33b Mon Sep 17 00:00:00 2001
From: David Conrad <lessen42@gmail.com>
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 0ac087d7ae4..140a58a9eb4 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 96c432f9930..e62f288a7d2 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;
-- 
GitLab