mirror of https://git.ffmpeg.org/ffmpeg.git
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>
(cherry picked from commit 61d59703c9
)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
9085cdd677
commit
b580bae53a
|
@ -315,7 +315,8 @@ static av_always_inline void add_yblock(SnowContext *s, int sliced, slice_buffer
|
||||||
if(!sliced && !offset_dst)
|
if(!sliced && !offset_dst)
|
||||||
dst -= src_x;
|
dst -= src_x;
|
||||||
src_x=0;
|
src_x=0;
|
||||||
}else if(src_x + b_w > w){
|
}
|
||||||
|
if(src_x + b_w > w){
|
||||||
b_w = w - src_x;
|
b_w = w - src_x;
|
||||||
}
|
}
|
||||||
if(src_y<0){
|
if(src_y<0){
|
||||||
|
@ -324,7 +325,8 @@ static av_always_inline void add_yblock(SnowContext *s, int sliced, slice_buffer
|
||||||
if(!sliced && !offset_dst)
|
if(!sliced && !offset_dst)
|
||||||
dst -= src_y*dst_stride;
|
dst -= src_y*dst_stride;
|
||||||
src_y=0;
|
src_y=0;
|
||||||
}else if(src_y + b_h> h){
|
}
|
||||||
|
if(src_y + b_h> h){
|
||||||
b_h = h - src_y;
|
b_h = h - src_y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue