OSDN Git Service

Fix av_open_input_stream with uninitialized context pointer.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Tue, 5 Jul 2011 21:10:44 +0000 (23:10 +0200)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Wed, 6 Jul 2011 18:17:43 +0000 (20:17 +0200)
Code would allocate a new context but forget to assign it
to the pointer actually passed to avformat_open_input,
potentially causing a crash.
Even if it was initialized it would cause a memleak.
This caused crashes with e.g. mpd, see also
http://bugs.gentoo.org/show_bug.cgi?id=373423

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
libavformat/utils.c

index 989ddac..9a7d6b7 100644 (file)
@@ -458,7 +458,7 @@ int av_open_input_stream(AVFormatContext **ic_ptr,
     opts = convert_format_parameters(ap);
 
     if(!ap->prealloced_context)
-        ic = avformat_alloc_context();
+        *ic_ptr = ic = avformat_alloc_context();
     else
         ic = *ic_ptr;
     if (!ic) {