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>
This commit is contained in:
parent
c57fc97e95
commit
61d59703c9
@ -318,7 +318,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){
|
||||||
@ -327,7 +328,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
Block a user