[FFmpeg-devel] [PATCH 3/5] avformat/mov: Better check for duplicate iloc

Michael Niedermayer michael at niedermayer.cc
Fri Sep 29 22:21:12 EEST 2023


On Tue, Apr 25, 2023 at 03:22:50PM -0700, Vignesh Venkatasubramanian wrote:
> On Mon, Apr 17, 2023 at 4:18 PM Michael Niedermayer
> <michael at niedermayer.cc> wrote:
> >
> > On Mon, Apr 17, 2023 at 12:36:26PM +0200, Anton Khirnov wrote:
> > > Quoting Michael Niedermayer (2023-04-17 00:25:16)
> > > > Fixes: memleak
> > > > Fixes: 45982/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-6674082962997248
> > > >
> > > > Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> > > > Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> > > > ---
> > > >  libavformat/mov.c | 2 +-
> > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > diff --git a/libavformat/mov.c b/libavformat/mov.c
> > > > index 057fd872b10..6853bb324cf 100644
> > > > --- a/libavformat/mov.c
> > > > +++ b/libavformat/mov.c
> > > > @@ -7777,7 +7777,7 @@ static int mov_read_iloc(MOVContext *c, AVIOContext *pb, MOVAtom atom)
> > > >          return 0;
> > > >      }
> > > >
> > > > -    if (c->fc->nb_streams) {
> > > > +    if (c->fc->nb_streams || c->avif_info) {
> > >
> > > This first condition is now redundant, is it not?
> >
> > Iam not sure
> 
> I think the second condition alone should be enough here. Either way,
> lgtm (if the current patch is more clearer for readers).

Ill apply with teh first condition converted to an assert then


> 
> > what exactly happens if a trak occurs before
> >
> 
> If a trak occurs before, then the condition in the line above should
> take care of that case (!c->is_still_picture_avif). Because if a trak
> was found, it will not be considered a still picture.
> 
> > Iam also not sure what happens if multiple meta tags occur triggering
> > the avif stream addition, i may be missing something but the code seems
> > not to expect that
> >
> 
> Multiple meta tags are not allowed in the AVIF/HEIF specification.

sure but what happens if the occur anyway, does the code handle that
with no undefined behavior ?

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I have often repented speaking, but never of holding my tongue.
-- Xenocrates
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20230929/2b6d58d8/attachment.sig>


More information about the ffmpeg-devel mailing list