On 4/26/2018 11:49 AM, Jerome Borsboom wrote:
> Overlap filtering of the first row and first column must be guarded
> for out of bounds access of v->over_flags_plane.
> 
> Signed-off-by: Jerome Borsboom <jerome.borsb...@carpalis.nl>
> ---
>  libavcodec/vc1_loopfilter.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/libavcodec/vc1_loopfilter.c b/libavcodec/vc1_loopfilter.c
> index bab28a649f..4c0de7c025 100644
> --- a/libavcodec/vc1_loopfilter.c
> +++ b/libavcodec/vc1_loopfilter.c
> @@ -110,19 +110,19 @@ void ff_vc1_i_overlap_filter(VC1Context *v)
>       * we run the put_pixels loop, i.e. delayed by one row and one column. */
>      for (i = 0; i < block_count; i++)
>          if (v->pq >= 9 || v->condover == CONDOVER_ALL ||
> -            (v->over_flags_plane[mb_pos] && ((i & 5) == 1 || 
> v->over_flags_plane[mb_pos - 1])))
> +            (v->over_flags_plane[mb_pos] && ((i & 5) == 1 || (s->mb_x && 
> v->over_flags_plane[mb_pos - 1]))))
>              vc1_h_overlap_filter(v, s->mb_x ? left_blk : cur_blk, cur_blk, 
> i);
>  
>      if (v->fcm != ILACE_FRAME)
>          for (i = 0; i < block_count; i++) {
>              if (s->mb_x && (v->pq >= 9 || v->condover == CONDOVER_ALL ||
>                  (v->over_flags_plane[mb_pos - 1] &&
> -                 ((i & 2) || v->over_flags_plane[mb_pos - 1 - 
> s->mb_stride]))))
> +                 ((i & 2) || (!s->first_slice_line && 
> v->over_flags_plane[mb_pos - 1 - s->mb_stride])))))
>                  vc1_v_overlap_filter(v, s->first_slice_line ? left_blk : 
> topleft_blk, left_blk, i);
>              if (s->mb_x == s->mb_width - 1)
>                  if (v->pq >= 9 || v->condover == CONDOVER_ALL ||
>                      (v->over_flags_plane[mb_pos] &&
> -                     ((i & 2) || v->over_flags_plane[mb_pos - 
> s->mb_stride])))
> +                     ((i & 2) || (!s->first_slice_line && 
> v->over_flags_plane[mb_pos - s->mb_stride]))))
>                      vc1_v_overlap_filter(v, s->first_slice_line ? cur_blk : 
> top_blk, cur_blk, i);
>          }
>  }

Can confirm this fixes the Valgrind failures.

Thanks.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to