From fc27b8081ec79e58f3429a5d49e51fdc041f74ca Mon Sep 17 00:00:00 2001 From: Vitor Sessak Date: Fri, 4 Apr 2008 20:06:10 +0000 Subject: Don't mangle the input strings. The caller may want to reuse it later. Commited in SoC by Bobby Bingham on 2007-07-15 16:13:17 Originally committed as revision 12691 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavfilter/avfiltergraph.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'libavfilter/avfiltergraph.c') diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c index 684da30380..034342a540 100644 --- a/libavfilter/avfiltergraph.c +++ b/libavfilter/avfiltergraph.c @@ -22,6 +22,7 @@ #include #include +#include "avstring.h" #include "avfilter.h" #include "avfiltergraph.h" @@ -55,16 +56,17 @@ void avfilter_graph_add_filter(AVFilterGraph *graph, AVFilterContext *filter) graph->filters[graph->filter_count - 1] = filter; } -static AVFilterContext *create_filter_with_args(char *filter) +static AVFilterContext *create_filter_with_args(const char *filt) { AVFilterContext *ret; + char *filter = av_strdup(filt); /* copy - don't mangle the input string */ char *name, *args; name = filter; if((args = strchr(filter, '='))) { /* ensure we at least have a name */ if(args == filter) - return NULL; + goto fail; *args ++ = 0; } @@ -76,11 +78,15 @@ static AVFilterContext *create_filter_with_args(char *filter) if(avfilter_init_filter(ret, args)) { av_log(NULL, AV_LOG_ERROR, "error initializing filter!\n"); avfilter_destroy(ret); - ret = NULL; + goto fail; } } else av_log(NULL, AV_LOG_ERROR, "error creating filter!\n"); return ret; + +fail: + av_free(filter); + return NULL; } int avfilter_graph_load_chain(AVFilterGraph *graph, -- cgit v1.2.3