Hi,

On Fri, Feb 10, 2012 at 1:58 PM, Paul B Mahol <[email protected]> wrote:
> On 2/10/12, Ronald S. Bultje <[email protected]> wrote:
>> On Fri, Feb 10, 2012 at 1:44 PM, Paul B Mahol <[email protected]> wrote:
>>> On 2/10/12, Ronald S. Bultje <[email protected]> wrote:
>>>> On Fri, Feb 10, 2012 at 10:59 AM, Paul B Mahol <[email protected]> wrote:
>>>>> On 2/10/12, Ronald S. Bultje <[email protected]> wrote:
>>>>>> From: "Ronald S. Bultje" <[email protected]>
>>>>>>
>>>>>> Prevents a division by zero later on.
>>>>>> ---
>>>>>>  libavcodec/tta.c |    3 +++
>>>>>>  1 files changed, 3 insertions(+), 0 deletions(-)
>>>>>>
>>>>>> diff --git a/libavcodec/tta.c b/libavcodec/tta.c
>>>>>> index 49d5953..2fc1eb4 100644
>>>>>> --- a/libavcodec/tta.c
>>>>>> +++ b/libavcodec/tta.c
>>>>>> @@ -223,6 +223,9 @@ static av_cold int tta_decode_init(AVCodecContext *
>>>>>> avctx)
>>>>>>          if (s->channels == 0) {
>>>>>>              av_log(s->avctx, AV_LOG_ERROR, "Invalid number of
>>>>>> channels\n");
>>>>>>              return AVERROR_INVALIDDATA;
>>>>>> +        } else if (avctx->sample_rate == 0) {
>>>>>> +            av_log(s->avctx, AV_LOG_ERROR, "Invalid samplerate\n");
>>>>>> +            return AVERROR_INVALIDDATA;
>>>>>>          }
>>>>>>
>>>>>>          switch(s->bps) {
>>>>>
>>>>> TTA Demuxer already checks for that, so this is I guess for other
>>>>> containers.
>>>>>
>>>>> Such and similar checks (like the one above) just bloats code for
>>>>> no good reason and should be fixed in nicer and more generic way.
>>>>
>>>> This can't be done more generally. The sample rate is read from the
>>>> bitstream just five lines above and is used for a division just five
>>>> lines below. How else would we check than in between these two?
>>>
>>> The sample rate is read in this case from extradata provided by demuxers.
>>> Demuxers should already check for sane sample rate.
>>
>> Are you suggesting that the demuxer parse the extradata?
>
> tta demuxer checks samplerate before pushing extradata.
>
> Note: I'm not against committing patch as it is now, I'm just
> contemplating about
> solution which would work for other cases instead of going to search for 
> another
> division by zero bug in code.

TTA-in-MKV has "opaque" extradata, i.e. the demuxer doesn't know what
it is and therefore cannot parse it. I highly doubt parsing
codec-specific extradata in the mkv demuxer is a good idea.

Ronald
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to