From: Marton Balint <cus@passwd.hu> To: ffmpeg-devel@ffmpeg.org Cc: Marton Balint <cus@passwd.hu> Subject: [FFmpeg-devel] [PATCH 2/2] avformat/mov: re-allow zero sample sizes if that is not the default Date: Mon, 5 Dec 2022 00:50:02 +0100 Message-ID: <20221204235002.26754-2-cus@passwd.hu> (raw) In-Reply-To: <20221204235002.26754-1-cus@passwd.hu> Patch 03d81a044ad587ea83567f75dc36bc3d64278199 disallowed zero sample sizes, but there are some files in the wild which have zero sized samples (e.g. no audio in some part of a live recording). Fix this by only disallowing zero sized samples if the size is coming from the default sample size and not from the trun box. This approach fixes the original timeout issue from fuzzed files differently. Signed-off-by: Marton Balint <cus@passwd.hu> --- libavformat/mov.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index 935b2f8d9f..9d3a2ab830 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -5230,6 +5230,9 @@ static int mov_read_trun(MOVContext *c, AVIOContext *pb, MOVAtom atom) if (index_entry_pos > 0) prev_dts = sti->index_entries[index_entry_pos-1].timestamp; + if (entries && !frag->size && !(flags & MOV_TRUN_SAMPLE_SIZE)) + return AVERROR_INVALIDDATA; + for (i = 0; i < entries && !pb->eof_reached; i++) { unsigned sample_size = frag->size; int sample_flags = i ? frag->flags : first_sample_flags; @@ -5293,8 +5296,6 @@ static int mov_read_trun(MOVContext *c, AVIOContext *pb, MOVAtom atom) distance++; if (av_sat_add64(dts, sample_duration) != dts + (uint64_t)sample_duration) return AVERROR_INVALIDDATA; - if (!sample_size) - return AVERROR_INVALIDDATA; dts += sample_duration; offset += sample_size; sc->data_size += sample_size; -- 2.35.3 _______________________________________________ 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:[~2022-12-04 23:50 UTC|newest] Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-12-04 23:50 [FFmpeg-devel] [PATCH 1/2] avformat/mov: do not emit zero sized packets Marton Balint 2022-12-04 23:50 ` Marton Balint [this message] 2022-12-11 11:54 ` [FFmpeg-devel] [PATCH v2 2/2] avformat/mov: re-allow zero sample sizes if that is not the default Marton Balint 2022-12-11 20:34 ` Chris Ribble 2022-12-12 19:19 ` Chris Ribble 2022-12-14 23:07 ` Marton Balint
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=20221204235002.26754-2-cus@passwd.hu \ --to=cus@passwd.hu \ --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