Browse Source

avformat/utils: Check AVFormatContext->duration in compute_chapters_end() before use

Fixes integer overflow
Fixes: 266ee543812e934f7b4a72923a2701d4/signal_sigabrt_7ffff6ae7cc9_7322_85218d61759d461bdf7387180e8000c9.ogg

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
tags/n3.0
Michael Niedermayer 10 years ago
parent
commit
d872643cfe
1 changed files with 4 additions and 1 deletions
  1. +4
    -1
      libavformat/utils.c

+ 4
- 1
libavformat/utils.c View File

@@ -2889,7 +2889,10 @@ enum AVCodecID av_codec_get_id(const AVCodecTag *const *tags, unsigned int tag)
static void compute_chapters_end(AVFormatContext *s)
{
unsigned int i, j;
int64_t max_time = s->duration +
int64_t max_time = 0;

if (s->duration > 0)
max_time = s->duration +
((s->start_time == AV_NOPTS_VALUE) ? 0 : s->start_time);

for (i = 0; i < s->nb_chapters; i++)


Loading…
Cancel
Save