OSDN Git Service

avplay: Free frame and graph when memory allocation fails
authorFederico Tomassetti <f.tomassetti@gmail.com>
Sun, 19 Apr 2015 10:43:14 +0000 (11:43 +0100)
committerVittorio Giovara <vittorio.giovara@gmail.com>
Sun, 19 Apr 2015 22:45:35 +0000 (23:45 +0100)
Bug-Id: CID 1291564
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
avplay.c

index 242b9ae..98fd954 100644 (file)
--- a/avplay.c
+++ b/avplay.c
@@ -1580,8 +1580,10 @@ static int video_thread(void *arg)
     AVFilterContext *filt_out = NULL, *filt_in = NULL;
     int last_w = is->video_st->codec->width;
     int last_h = is->video_st->codec->height;
-    if (!graph)
+    if (!graph) {
+        av_frame_free(&frame);
         return AVERROR(ENOMEM);
+    }
 
     if ((ret = configure_video_filters(graph, is, vfilters)) < 0)
         goto the_end;
@@ -1589,8 +1591,12 @@ static int video_thread(void *arg)
     filt_out = is->out_video_filter;
 #endif
 
-    if (!frame)
+    if (!frame) {
+#if CONFIG_AVFILTER
+        avfilter_graph_free(&graph);
+#endif
         return AVERROR(ENOMEM);
+    }
 
     for (;;) {
 #if CONFIG_AVFILTER