[FFmpeg-cvslog] ffmpeg: Fix memory corruption with ffserver

Michael Niedermayer git at videolan.org
Sat Oct 29 20:39:40 CEST 2011


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sat Oct 29 20:21:59 2011 +0200| [a18ecfeb365c9fe3e97a782d2d1aeb4e875b469c] | committer: Michael Niedermayer

ffmpeg: Fix memory corruption with ffserver
Bug has been introduced by:
commit 1cede1d0112b5b26e6d023846729662b7cf1853f
Author: Anton Khirnov <anton at khirnov.net>
Date:   Sat Jun 25 07:43:49 2011 +0200

    ffmpeg: factor common code from new_a/v/s/d_stream to new_output_stream()

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a18ecfeb365c9fe3e97a782d2d1aeb4e875b469c
---

 ffmpeg.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/ffmpeg.c b/ffmpeg.c
index 1a3cc3c..38464f7 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -3636,15 +3636,18 @@ static int read_ffserver_streams(OptionsContext *o, AVFormatContext *s, const ch
         AVStream *st;
         OutputStream *ost;
         AVCodec *codec;
+        AVCodecContext *avctx;
 
         codec = avcodec_find_encoder(ic->streams[i]->codec->codec_id);
         ost   = new_output_stream(o, s, codec->type);
         st    = ost->st;
+        avctx = st->codec;
 
         // FIXME: a more elegant solution is needed
         memcpy(st, ic->streams[i], sizeof(AVStream));
         st->info = av_malloc(sizeof(*st->info));
         memcpy(st->info, ic->streams[i]->info, sizeof(*st->info));
+        st->codec= avctx;
         avcodec_copy_context(st->codec, ic->streams[i]->codec);
 
         if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO && !ost->stream_copy)



More information about the ffmpeg-cvslog mailing list