diff --git a/libavfilter/graphparser.c b/libavfilter/graphparser.c index 3b49898ba2..2929776a60 100644 --- a/libavfilter/graphparser.c +++ b/libavfilter/graphparser.c @@ -277,7 +277,7 @@ static int parse_outputs(const char **buf, AVFilterInOut **curr_inputs, AVFilterInOut **open_inputs, AVFilterInOut **open_outputs, AVClass *log_ctx) { - int pad = 0; + int ret, pad = 0; while (**buf == '[') { char *name = parse_link_name(buf, log_ctx); @@ -287,15 +287,15 @@ static int parse_outputs(const char **buf, AVFilterInOut **curr_inputs, *curr_inputs = (*curr_inputs)->next; if (!name) - return -1; + return AVERROR(EINVAL); /* First check if the label is not in the open_inputs list */ match = extract_inout(name, open_inputs); if (match) { - if (link_filter(input->filter, input->pad_idx, - match->filter, match->pad_idx, log_ctx) < 0) - return -1; + if ((ret = link_filter(input->filter, input->pad_idx, + match->filter, match->pad_idx, log_ctx)) < 0) + return ret; av_free(match->name); av_free(name); av_free(match);