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:19:48 +0000 (20:19 +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>
(cherry picked from commit 4e59c8ecf1433b85b539c5e89bb68cfe8b839866)

libavformat/utils.c

index b610276..b8a284a 100644 (file)
@@ -524,7 +524,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) {