summaryrefslogtreecommitdiff
path: root/libavfilter/graphparser.c
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-08-23 01:51:22 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-08-23 19:57:42 +0200
commit95b8df687cc0182a4ec7666c2bbc2826c9ef0852 (patch)
treef0b52e67da1d5e3d4876b90111bf245895432846 /libavfilter/graphparser.c
parentf33faa5b9bfb288f83db034fa1f8719ab8a994c6 (diff)
downloadffmpeg-95b8df687cc0182a4ec7666c2bbc2826c9ef0852.tar.gz
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>
Diffstat (limited to 'libavfilter/graphparser.c')
-rw-r--r--libavfilter/graphparser.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/libavfilter/graphparser.c b/libavfilter/graphparser.c
index e96b20418e..a52916a146 100644
--- a/libavfilter/graphparser.c
+++ b/libavfilter/graphparser.c
@@ -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);