mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-03-11 06:58:18 +00:00
avfilter/graphparser: Don't set pointer to one beyond '\0' of string
This happened in parse_link_name() if there was a '[' without matching ']'. While this is not undefined behaviour (pointer arithmetic one beyond the end of an array works fine as long as there are no accesses), it is potentially dangerous. It currently isn't (all callers of parse_link_name() treat this as an error and don't access the string any more), but making sure that this will never cause trouble in the future seems nevertheless worthwhile. Reviewed-by: Nicolas George <george@nsup.org> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
b3f6dee728
commit
f33faa5b9b
@ -63,7 +63,7 @@ static char *parse_link_name(const char **buf, void *log_ctx)
|
||||
|
||||
name = av_get_token(buf, "]");
|
||||
if (!name)
|
||||
goto fail;
|
||||
return NULL;
|
||||
|
||||
if (!name[0]) {
|
||||
av_log(log_ctx, AV_LOG_ERROR,
|
||||
@ -71,12 +71,14 @@ static char *parse_link_name(const char **buf, void *log_ctx)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (*(*buf)++ != ']') {
|
||||
if (**buf != ']') {
|
||||
av_log(log_ctx, AV_LOG_ERROR,
|
||||
"Mismatched '[' found in the following: \"%s\".\n", start);
|
||||
fail:
|
||||
av_freep(&name);
|
||||
return NULL;
|
||||
}
|
||||
(*buf)++;
|
||||
|
||||
return name;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user