diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-02-18 02:53:14 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-02-18 02:54:18 +0100 |
commit | 61d59703c91869f4e5cdacd8d6be52f8b89d4ba4 (patch) | |
tree | c3627a1b8f33eb4c94ac7468ba559a7232f49075 | |
parent | c57fc97e956a52edc94a38ff0ecd3058b44c15b7 (diff) | |
download | ffmpeg-61d59703c91869f4e5cdacd8d6be52f8b89d4ba4.tar.gz |
avcodec/snow: split block clipping checks
Fixes out of array read
Fixes: d4476f68ca1c1c57afbc45806f581963-asan_heap-oob_2266b27_8607_cov_4044577381_snow_chroma_bug.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/snow.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libavcodec/snow.h b/libavcodec/snow.h index 1222a776de..60b00623a0 100644 --- a/libavcodec/snow.h +++ b/libavcodec/snow.h @@ -318,7 +318,8 @@ static av_always_inline void add_yblock(SnowContext *s, int sliced, slice_buffer if(!sliced && !offset_dst) dst -= src_x; src_x=0; - }else if(src_x + b_w > w){ + } + if(src_x + b_w > w){ b_w = w - src_x; } if(src_y<0){ @@ -327,7 +328,8 @@ static av_always_inline void add_yblock(SnowContext *s, int sliced, slice_buffer if(!sliced && !offset_dst) dst -= src_y*dst_stride; src_y=0; - }else if(src_y + b_h> h){ + } + if(src_y + b_h> h){ b_h = h - src_y; } |