Browse Source

avfilter/graphparser: Check allocations for success

parse_filter() did not check the return value of av_get_token() for
success; in case name (the name of a filter) was NULL, one got a
segfault in av_strlcpy() (called from create_filter()).

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
(cherry picked from commit 95b8df687c)
release/4.3
Andreas Rheinhardt 5 years ago
parent
commit
ba257f568e
1 changed files with 7 additions and 0 deletions
  1. +7
    -0
      libavfilter/graphparser.c

+ 7
- 0
libavfilter/graphparser.c View File

@@ -186,9 +186,16 @@ static int parse_filter(AVFilterContext **filt_ctx, const char **buf, AVFilterGr
char *name = av_get_token(buf, "=,;[");
int ret;

if (!name)
return AVERROR(ENOMEM);

if (**buf == '=') {
(*buf)++;
opts = av_get_token(buf, "[],;");
if (!opts) {
av_free(name);
return AVERROR(ENOMEM);
}
}

ret = create_filter(filt_ctx, graph, index, name, opts, log_ctx);


Loading…
Cancel
Save