[FFmpeg-cvslog] ffprobe: fix crash if the file can't be opened.

Clément Bœsch git at videolan.org
Sat Feb 18 21:35:20 CET 2012


ffmpeg | branch: master | Clément Bœsch <ubitux at gmail.com> | Sat Feb 18 21:34:44 2012 +0100| [8688e6acba81c411c645a1f07f4ca18502726ded] | committer: Clément Bœsch

ffprobe: fix crash if the file can't be opened.

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

 ffprobe.c |   10 ++++------
 1 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/ffprobe.c b/ffprobe.c
index a2315d5..f4174fa 100644
--- a/ffprobe.c
+++ b/ffprobe.c
@@ -1627,9 +1627,9 @@ static int probe_file(WriterContext *wctx, const char *filename)
     do_read_packets = do_show_packets || do_count_packets;
 
     ret = open_input_file(&fmt_ctx, filename);
-    nb_streams_frames  = av_calloc(fmt_ctx->nb_streams, sizeof(*nb_streams_frames));
-    nb_streams_packets = av_calloc(fmt_ctx->nb_streams, sizeof(*nb_streams_packets));
     if (ret >= 0) {
+        nb_streams_frames  = av_calloc(fmt_ctx->nb_streams, sizeof(*nb_streams_frames));
+        nb_streams_packets = av_calloc(fmt_ctx->nb_streams, sizeof(*nb_streams_packets));
         if (do_read_frames || do_read_packets) {
             const char *chapter;
             if (do_show_frames && do_show_packets &&
@@ -1651,11 +1651,9 @@ static int probe_file(WriterContext *wctx, const char *filename)
             if (fmt_ctx->streams[i]->codec->codec_id != CODEC_ID_NONE)
                 avcodec_close(fmt_ctx->streams[i]->codec);
         avformat_close_input(&fmt_ctx);
+        av_freep(&nb_streams_frames);
+        av_freep(&nb_streams_packets);
     }
-
-    av_freep(&nb_streams_frames);
-    av_freep(&nb_streams_packets);
-
     return ret;
 }
 



More information about the ffmpeg-cvslog mailing list