Commit 1e689518 authored by Andreas Rheinhardt's avatar Andreas Rheinhardt

avformat/webmdashenc: Don't segfault on invalid arguments

The current parsing process for adaptation_sets does not guarantee
every adaptation set to contain at least one stream, because the loop
exits immediately as soon as the end of the string has been reached,
without checking whether the currently active adaptation set group is
lacking a stream. This would lead to segfaults lateron as the rest of
the code presumed that every adaptation set contains a stream. This
commit fixes this by erroring out when the last adaptation set group
is incomplete.
Signed-off-by: 's avatarAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
parent 9b614826
...@@ -437,8 +437,13 @@ static int parse_adaptation_sets(AVFormatContext *s) ...@@ -437,8 +437,13 @@ static int parse_adaptation_sets(AVFormatContext *s)
} }
// syntax id=0,streams=0,1,2 id=1,streams=3,4 and so on // syntax id=0,streams=0,1,2 id=1,streams=3,4 and so on
state = new_set; state = new_set;
while (p < w->adaptation_sets + strlen(w->adaptation_sets)) { while (1) {
if (state == new_set && *p == ' ') { if (*p == '\0') {
if (state == new_set)
break;
else
return AVERROR(EINVAL);
} else if (state == new_set && *p == ' ') {
p++; p++;
continue; continue;
} else if (state == new_set && !strncmp(p, "id=", 3)) { } else if (state == new_set && !strncmp(p, "id=", 3)) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment