From 4e4a3e2314b34a0d55167626c1e737cdaa66126b Mon Sep 17 00:00:00 2001 From: Vitor Sessak Date: Fri, 4 Apr 2008 20:09:47 +0000 Subject: Handle av_realloc() failure Commited in SoC by Vitor Sessak on 2008-04-04 15:35:38 Originally committed as revision 12754 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavfilter/avfiltergraph.c | 12 ++++++++++-- libavfilter/avfiltergraph.h | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'libavfilter') diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c index 7e040a4f4f..ccb275c6f9 100644 --- a/libavfilter/avfiltergraph.c +++ b/libavfilter/avfiltergraph.c @@ -33,11 +33,17 @@ void avfilter_destroy_graph(AVFilterGraph *graph) av_freep(&graph->filters); } -void avfilter_graph_add_filter(AVFilterGraph *graph, AVFilterContext *filter) +int avfilter_graph_add_filter(AVFilterGraph *graph, AVFilterContext *filter) { graph->filters = av_realloc(graph->filters, sizeof(AVFilterContext*) * ++graph->filter_count); + + if (!graph->filters) + return -1; + graph->filters[graph->filter_count - 1] = filter; + + return 0; } AVFilterContext *avfilter_graph_get_filter(AVFilterGraph *graph, char *name) @@ -87,7 +93,9 @@ static int query_formats(AVFilterGraph *graph) return -1; } - avfilter_graph_add_filter(graph, scale); + if (avfilter_graph_add_filter(graph, scale) < 0) + return -1; + scale->filter->query_formats(scale); if(!avfilter_merge_formats(scale-> inputs[0]->in_formats, scale-> inputs[0]->out_formats)|| diff --git a/libavfilter/avfiltergraph.h b/libavfilter/avfiltergraph.h index e529af9ff7..dbfad4fcc7 100644 --- a/libavfilter/avfiltergraph.h +++ b/libavfilter/avfiltergraph.h @@ -39,7 +39,7 @@ AVFilterContext *avfilter_graph_get_filter(AVFilterGraph *graph, char *name); * @param graph The filter graph * @param filter The filter to be added */ -void avfilter_graph_add_filter(AVFilterGraph *graphctx, AVFilterContext *filter); +int avfilter_graph_add_filter(AVFilterGraph *graphctx, AVFilterContext *filter); /** * Configure the formats of all the links in the graph. -- cgit v1.2.3