Alex Converse <alex.conve...@gmail.com> writes:

> On Thu, Sep 8, 2011 at 4:05 PM, Laurent Aimar <fen...@elivagar.org> wrote:
>> Hi,
>>
>>  After trying some fuzzing on libavcodec, it seems that a lot of decoders
>> does not check (or not enough) for buffer overread which can lead for some
>> to a segfault.
>>
>>  I attached a patch that make get_bits.h function checked for overread by
>> default but let safe decoders disabling the checks at compilation time by
>> defining UNCHECK_BITSTREAM_READER before including get_bits.h.
>>  If such patch would be including, I would gladly provide a patch
>> adding the #define UNCHECK_BITSTREAM_READER to the decoder that are 'safe'.
>>
>> I haven't yet benchmark the performance loss but will do so.
>>
>>  One decoder breaks with this patch: mpegaudio. It seems to do weird things
>> with two get bit context and switching them while decoding. I will try to
>> have a look at it (unless someone would volunteer to explain me what it is
>> doing :)
>>
>> Also, I haven't implemented the checks for A32_BITSTREAM_READER. But I am not
>> sure when (or even if) this reader is used.
>>
>> Regards,
>>
>
> I've put this in a separate post because this is probably the more
> contentious part...
>
> I think this should be opt-in instead of opt-out. i.e. the bad
> decoders (even if that is most of them) should have the ugly boiler
> plate, not the good ones.
>
> And in previous discussions the prevailing opinion has been that on
> decoders for more modern formats, that make a good attempt to respect
> buffer sizes, not to opt them into something like this even if they
> are not perfect and instead the individual flaws have been fixed.
>
> This is a very expensive form of error resilience and there are a lot
> of use cases where people just don't care. They will tolerate the SEGV
> on the occasional bad file if it means they can decode a good with
> reasonable speed.
>
> i.e. Please turn this feature on for the Indeos and the Sorensons and
> the like, but let's fix the individual bugs in the H.264s and VP8s.
> Turning this on for them is overkill.

Agree.  This will annihilate performance, so if we're going to do this,
we might as well stop altogether.

-- 
Måns Rullgård
m...@mansr.com
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to