changeset 6309:024f95630898 libavformat

ffmdec: Do not manually free streams on read_header error, this is always handled by upper layers. Fixes double-frees (issue 2003). Instead call ffm_close to ensure rc_eqs are freed also in the error case.
author reimar
date Sun, 25 Jul 2010 07:52:58 +0000
parents 2b1ab404f1cf
children 3d61da0c6e41
files ffmdec.c
diffstat 1 files changed, 3 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/ffmdec.c	Sat Jul 24 22:50:12 2010 +0000
+++ b/ffmdec.c	Sun Jul 25 07:52:58 2010 +0000
@@ -252,6 +252,8 @@
 }
 
 
+static int ffm_close(AVFormatContext *s);
+
 static int ffm_read_header(AVFormatContext *s, AVFormatParameters *ap)
 {
     FFMContext *ffm = s->priv_data;
@@ -381,12 +383,7 @@
     ffm->first_packet = 1;
     return 0;
  fail:
-    for(i=0;i<s->nb_streams;i++) {
-        st = s->streams[i];
-        if (st) {
-            av_free(st);
-        }
-    }
+    ffm_close(s);
     return -1;
 }