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

Michael Niedermayer michaelni at gmx.at
Mon Jan 14 19:40:35 CET 2013


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 ...)

[...]

-- 
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20130114/7b623394/attachment.asc>


More information about the ffmpeg-devel mailing list