[FFmpeg-devel] [PATCH] golomb: check log validity before shifting

Paul B Mahol onemda at gmail.com
Mon Jan 14 23:43:17 CET 2013


On 1/14/13, Michael Niedermayer <michaelni at gmx.at> wrote:
> On Mon, Jan 14, 2013 at 11:58:13AM +0000, Paul B Mahol wrote:
>> On 1/12/13, Michael Niedermayer <michaelni at gmx.at> wrote:
>> > Fixes invalid right shift in fate-cavs
>> >
>> > Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
>> > ---
>> >  libavcodec/golomb.h |    8 ++++++--
>> >  1 file changed, 6 insertions(+), 2 deletions(-)
>> >
>> > diff --git a/libavcodec/golomb.h b/libavcodec/golomb.h
>> > index 0629c78..e3a35e9 100644
>> > --- a/libavcodec/golomb.h
>> > +++ b/libavcodec/golomb.h
>> > @@ -66,10 +66,14 @@ static inline int get_ue_golomb(GetBitContext *gb){
>> >          return ff_ue_golomb_vlc_code[buf];
>> >      }else{
>> >          log= 2*av_log2(buf) - 31;
>> > -        buf>>= log;
>> > -        buf--;
>> >          LAST_SKIP_BITS(re, gb, 32 - log);
>> >          CLOSE_READER(re, gb);
>> > +        if (log < 0) {
>> > +            av_log(0, AV_LOG_ERROR, "Invalid UE golomb code\n");
>> > +            return AVERROR_INVALIDDATA;
>> > +        }
>> > +        buf>>= log;
>> > +        buf--;
>> >
>> >          return buf;
>> >      }
>> > --
>> > 1.7.9.5
>>
>> I'm not sure about return code, most code that calls it never check
>> value.
>
> thats true, do you see a reason this code would be worse than -1 or
> 0 ? (0 would not allow the condition to be detected ...)

Whatever that really fix bugs and not just fixes one and leave others flying.

>
> [...]
>
> --
> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> Complexity theory is the science of finding the exact solution to an
> approximation. Benchmarking OTOH is finding an approximation of the exact
>


More information about the ffmpeg-devel mailing list