[FFmpeg-devel] qt-faststart bug near 4GB

Michael Niedermayer michael at niedermayer.cc
Mon Jun 11 03:43:18 EEST 2018


On Sun, Jun 10, 2018 at 01:20:10PM +0000, Eran Kornblau wrote:
> > 
> > -----Original Message-----
> > From: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] On Behalf Of Michael Niedermayer
> > Sent: Saturday, June 9, 2018 9:17 PM
> > To: FFmpeg development discussions and patches <ffmpeg-devel at ffmpeg.org>
> > Subject: Re: [FFmpeg-devel] qt-faststart bug near 4GB
> > 
> > > +
> > > +        if (atom.size < atom.header_size) {
> > 
> > > +            printf("atom size %"PRIu64" too small\n", atom.size);
> > 
> > errors should go to stderr if av_log() is not used i see this is not introduced by the patch but was that way before so its more a comment about the code in git than the patch ...
> > but ideally this should be fixed in a seperate patch either before or after this one
> 
> I agree, had the same thought when I wrote the patch, but left it as it was - only the usage error is printed to stderr.
> Will submit a patch for this after we finalize the discussion on this one.
> 
> > 
> > some self test for the newly added feature would also be a good idea
> 
> Since a real MP4 with this problem is going to be large (4GB), I'm thinking about taking a small MP4,
> and patch some stco offset to UINT_MAX. Naturally, it will break the file, but faststart won't care -
> it should still upgrade the stco to co64, and we can just compare the cksum/md5sum of the result to some fixed value.
> What do you think?

hmm, thats probably the most practical, yes

you could also simply compress the file a 4gb file thats 99.99% 0 bytes is
not large but the problem would be that to test this it would need to be
decompressed and the space requirements seems too problematic for fate clients


> 
> Btw, the tests we ran on this change internally are - 
> 1. compared the result of the new version to the previous one on more than 1k files (incl small files and large >4gb files)
> and verified the result was exactly the same (the edge case this solves is extremely rare, and "normal" files are not expected to change)
> 2. checked the specific file that had this issue, and verified it was fixed.
> 
> > 

> > also, was the new code tested with a fuzzer ?
> 
> No, can you provide some guidance on this - is there some fuzzing framework that you're using?

hmm, you can probably add qt-faststart to:
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg

this is probably a bit effort though.

using some arbitrary choosen fuzzer, AFL, zzuf or anything else is probably 
simpler. adding it to oss-fuzz has the advantage that google will in the
future automatically do the fuzzing for qt-faststart in ffmpeg.
to add it to oss-fuzz you probably would have to submit changes both to
the oss-fuzz ffmpeg repo as well as to ffmpeg ...

thx

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

It is what and why we do it that matters, not just one of them.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20180611/67d60c68/attachment.sig>


More information about the ffmpeg-devel mailing list