avformat/webmdashenc: Fix memleak upon realloc failure

The classical ptr = av_realloc(ptr, size).

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
Andreas Rheinhardt 2019-12-20 21:21:59 +01:00
parent 3875af84ed
commit 418e468699
1 changed files with 4 additions and 3 deletions

View File

@ -488,11 +488,12 @@ static int parse_adaptation_sets(AVFormatContext *s)
state = parsing_streams; state = parsing_streams;
} else if (state == parsing_streams) { } else if (state == parsing_streams) {
struct AdaptationSet *as = &w->as[w->nb_as - 1]; struct AdaptationSet *as = &w->as[w->nb_as - 1];
int ret = av_reallocp_array(&as->streams, ++as->nb_streams,
sizeof(*as->streams));
if (ret < 0)
return ret;
q = p; q = p;
while (*q != '\0' && *q != ',' && *q != ' ') q++; while (*q != '\0' && *q != ',' && *q != ' ') q++;
as->streams = av_realloc(as->streams, sizeof(*as->streams) * ++as->nb_streams);
if (as->streams == NULL)
return AVERROR(ENOMEM);
as->streams[as->nb_streams - 1] = to_integer(p, q - p + 1); as->streams[as->nb_streams - 1] = to_integer(p, q - p + 1);
if (as->streams[as->nb_streams - 1] < 0 || if (as->streams[as->nb_streams - 1] < 0 ||
as->streams[as->nb_streams - 1] >= s->nb_streams) { as->streams[as->nb_streams - 1] >= s->nb_streams) {