avformat/utils: Don't allocate zero-sized array

It is unnecessary and also ill-defined: av_malloc() returns a 1-byte
block of memory in this case, but this is not documented.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt 2021-08-27 13:46:50 +02:00
parent e04ddba64f
commit bcbd84f435
1 changed files with 7 additions and 3 deletions

View File

@ -3167,15 +3167,19 @@ static int compute_chapters_end(AVFormatContext *s)
{
unsigned int i;
int64_t max_time = 0;
AVChapter **timetable = av_malloc(s->nb_chapters * sizeof(*timetable));
AVChapter **timetable;
if (!timetable)
return AVERROR(ENOMEM);
if (!s->nb_chapters)
return 0;
if (s->duration > 0 && s->start_time < INT64_MAX - s->duration)
max_time = s->duration +
((s->start_time == AV_NOPTS_VALUE) ? 0 : s->start_time);
timetable = av_malloc(s->nb_chapters * sizeof(*timetable));
if (!timetable)
return AVERROR(ENOMEM);
for (i = 0; i < s->nb_chapters; i++)
timetable[i] = s->chapters[i];
qsort(timetable, s->nb_chapters, sizeof(*timetable), chapter_start_cmp);