[FFmpeg-devel] [PATCH] avcodec/vp9: Fix undefined shifts in decode_frame_header()

Ronald S. Bultje rsbultje at gmail.com
Thu Mar 12 12:15:47 CET 2015


Hi,

On Wed, Mar 11, 2015 at 9:11 PM, Michael Niedermayer <michaelni at gmx.at>
wrote:

> Found-by: Clang -fsanitize=shift
> Reported-by: Thierry Foucu <tfoucu at google.com>
> Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> ---
>  libavcodec/vp9.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c
> index 265dc7e..0405c05 100644
> --- a/libavcodec/vp9.c
> +++ b/libavcodec/vp9.c
> @@ -689,10 +689,10 @@ static int decode_frame_header(AVCodecContext *ctx,
>          for (j = 1; j < 4; j++) {
>              s->segmentation.feat[i].lflvl[j][0] =
>                  av_clip_uintp2(lflvl + ((s->lf_delta.ref[j] +
> -                                         s->lf_delta.mode[0]) << sh), 6);
> +                                         s->lf_delta.mode[0]) * (1 <<
> sh)), 6);
>              s->segmentation.feat[i].lflvl[j][1] =
>                  av_clip_uintp2(lflvl + ((s->lf_delta.ref[j] +
> -                                         s->lf_delta.mode[1]) << sh), 6);
> +                                         s->lf_delta.mode[1]) * (1 <<
> sh)), 6);


Same question: why is this undefined?

Ronald


More information about the ffmpeg-devel mailing list