From: Michael Niedermayer <michael@niedermayer.cc> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Subject: [FFmpeg-devel] [PATCH 05/15] avformat/mov: compute absolute dts difference without overflow in mov_find_next_sample() Date: Sun, 1 Oct 2023 00:30:36 +0200 Message-ID: <20230930223046.22896-5-michael@niedermayer.cc> (raw) In-Reply-To: <20230930223046.22896-1-michael@niedermayer.cc> Fixes: signed integer overflow: -9223372036854775808 - 9222726413022000000 cannot be represented in type 'long' Fixes: 51896/clusterfuzz-testcase-minimized-ffmpeg_dem_MOV_fuzzer-5959420033761280 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> --- libavformat/mov.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index 294c864fbd6..369c9b2ffd9 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -8795,12 +8795,13 @@ static AVIndexEntry *mov_find_next_sample(AVFormatContext *s, AVStream **st) if (msc->pb && msc->current_sample < avsti->nb_index_entries) { AVIndexEntry *current_sample = &avsti->index_entries[msc->current_sample]; int64_t dts = av_rescale(current_sample->timestamp, AV_TIME_BASE, msc->time_scale); + uint64_t dtsdiff = best_dts > dts ? best_dts - (uint64_t)dts : ((uint64_t)dts - best_dts); av_log(s, AV_LOG_TRACE, "stream %d, sample %d, dts %"PRId64"\n", i, msc->current_sample, dts); if (!sample || (no_interleave && current_sample->pos < sample->pos) || ((s->pb->seekable & AVIO_SEEKABLE_NORMAL) && ((msc->pb != s->pb && dts < best_dts) || (msc->pb == s->pb && dts != AV_NOPTS_VALUE && - ((FFABS(best_dts - dts) <= AV_TIME_BASE && current_sample->pos < sample->pos) || - (FFABS(best_dts - dts) > AV_TIME_BASE && dts < best_dts)))))) { + ((dtsdiff <= AV_TIME_BASE && current_sample->pos < sample->pos) || + (dtsdiff > AV_TIME_BASE && dts < best_dts)))))) { sample = current_sample; best_dts = dts; *st = avst; -- 2.17.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
next prev parent reply other threads:[~2023-09-30 22:31 UTC|newest] Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-09-30 22:30 [FFmpeg-devel] [PATCH 01/15] avformat/concatdec: Check in/outpoint for overflow Michael Niedermayer 2023-09-30 22:30 ` [FFmpeg-devel] [PATCH 02/15] avformat/jacosubdec: Factorize code in get_shift() a bit Michael Niedermayer 2023-09-30 22:30 ` [FFmpeg-devel] [PATCH 03/15] avformat/jacosubdec: avoid signed integer overflows in get_shift() Michael Niedermayer 2023-09-30 22:30 ` [FFmpeg-devel] [PATCH 04/15] avformat/jacosubdec: Check timeres Michael Niedermayer 2023-09-30 22:30 ` Michael Niedermayer [this message] 2023-09-30 22:30 ` [FFmpeg-devel] [PATCH 06/15] avformat/rpl: Check for number_of_chunks overflow Michael Niedermayer 2023-09-30 22:30 ` [FFmpeg-devel] [PATCH 07/15] avformat/sbgdec: Check for period overflow Michael Niedermayer 2023-10-03 11:06 ` Nicolas George 2023-10-03 14:12 ` Michael Niedermayer 2023-09-30 22:30 ` [FFmpeg-devel] [PATCH 08/15] avformat/sbgdec: Check for negative duration or un-representable end pts Michael Niedermayer 2023-10-03 14:40 ` Nicolas George 2023-09-30 22:30 ` [FFmpeg-devel] [PATCH 09/15] avformat/tta: Better totalframes check Michael Niedermayer 2023-09-30 22:30 ` [FFmpeg-devel] [PATCH 10/15] avformat/wavdec: Check left avio_tell for overflow Michael Niedermayer 2023-09-30 22:30 ` [FFmpeg-devel] [PATCH 11/15] avformat/matroskadec: Check prebuffered_ns " Michael Niedermayer 2023-09-30 22:30 ` [FFmpeg-devel] [PATCH 12/15] avformat/westwood_vqa: Do not leave vqfl_chunk_size invalid Michael Niedermayer 2023-09-30 22:48 ` Michael Niedermayer 2023-09-30 22:30 ` [FFmpeg-devel] [PATCH 13/15] avformat/xwma: sanity check bits_per_coded_sample Michael Niedermayer 2023-09-30 22:30 ` [FFmpeg-devel] [PATCH 14/15] avformat/asfdec_f: Saturate presentation time in marker Michael Niedermayer 2023-09-30 22:30 ` [FFmpeg-devel] [PATCH 15/15] avcodec/h264_parser: saturate dts a bit Michael Niedermayer 2023-10-02 12:03 ` [FFmpeg-devel] [PATCH 01/15] avformat/concatdec: Check in/outpoint for overflow Nicolas George 2023-10-03 14:11 ` Michael Niedermayer 2023-10-08 19:35 ` Michael Niedermayer
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20230930223046.22896-5-michael@niedermayer.cc \ --to=michael@niedermayer.cc \ --cc=ffmpeg-devel@ffmpeg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git