]> git.sesse.net Git - ffmpeg/commitdiff
Fix leak in avfilter_graph_add_filter().
authorStefano Sabatini <stefano.sabatini-lala@poste.it>
Sun, 18 Apr 2010 20:10:43 +0000 (20:10 +0000)
committerStefano Sabatini <stefano.sabatini-lala@poste.it>
Sun, 18 Apr 2010 20:10:43 +0000 (20:10 +0000)
In case of reallocation failure the pointer to the original filter
array was lost. The correct behavior seems to just keep the old array
and count.

Originally committed as revision 22905 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavfilter/avfiltergraph.c

index 2fcf73ab5ca4c6db6d520ece94be83857dd2d230..9ad653630671b89759658ed4d8579ec814b4c9cc 100644 (file)
@@ -36,13 +36,13 @@ void avfilter_graph_destroy(AVFilterGraph *graph)
 
 int avfilter_graph_add_filter(AVFilterGraph *graph, AVFilterContext *filter)
 {
-    graph->filters = av_realloc(graph->filters,
-                                sizeof(AVFilterContext*) * ++graph->filter_count);
-
-    if (!graph->filters)
+    AVFilterContext **filters = av_realloc(graph->filters,
+                                           sizeof(AVFilterContext*) * (graph->filter_count+1));
+    if (!filters)
         return AVERROR(ENOMEM);
 
-    graph->filters[graph->filter_count - 1] = filter;
+    graph->filters = filters;
+    graph->filters[graph->filter_count++] = filter;
 
     return 0;
 }