[FFmpeg-devel] [PATCH 1/2] Fix leak in avfilter_graph_add_filter().

Stefano Sabatini stefano.sabatini-lala
Sun Apr 11 23:26:16 CEST 2010


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.
---
 libavfilter/avfiltergraph.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c
index 8fbbecf..75249e8 100644
--- a/libavfilter/avfiltergraph.c
+++ b/libavfilter/avfiltergraph.c
@@ -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 -1;
 
-    graph->filters[graph->filter_count - 1] = filter;
+    graph->filters = filters;
+    graph->filters[graph->filter_count++] = filter;
 
     return 0;
 }
-- 
1.7.0




More information about the ffmpeg-devel mailing list