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

Michael Niedermayer michaelni at gmx.at
Tue Jan 15 00:28:43 CET 2013


On Mon, Jan 14, 2013 at 10:43:17PM +0000, Paul B Mahol wrote:
> 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.

It should fix the IOC failure and makes the invalid cases more
vissible. It doesnt make callers check the return code. Later may
in some cases have speedloss implications if it where done

ill wait a day and if i hear no objections from anyone then ill commit

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

Dictatorship naturally arises out of democracy, and the most aggravated
form of tyranny and slavery out of the most extreme liberty. -- Plato
-------------- 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/20130115/efc32ae8/attachment.asc>


More information about the ffmpeg-devel mailing list