[FFmpeg-devel] [PATCH] golomb: check log validity before shifting
Paul B Mahol
onemda at gmail.com
Mon Jan 14 12:58:13 CET 2013
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.
More information about the ffmpeg-devel
mailing list