diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-01-06 05:51:20 +0400 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-01-06 07:32:37 +0400 |
commit | 4ced5d7780fea2ea49444d6686d26f26b3a2160f (patch) | |
tree | 62e1e3d0927c79dd6506de1c4aba4b6f45a6b030 /libavcodec/hevc_filter.c | |
parent | d66bab0a69ac1860e78dd951ad8db1a507e75642 (diff) |
avcodec/hevc: Fix modulo operations
Fixes qp fields becoming out of range
Fixes: asan_static-oob_e393a3_6998_WPP_A_ericsson_MAIN10_2.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/hevc_filter.c')
-rw-r--r-- | libavcodec/hevc_filter.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libavcodec/hevc_filter.c b/libavcodec/hevc_filter.c index ae72fbbe49..8353e15ea0 100644 --- a/libavcodec/hevc_filter.c +++ b/libavcodec/hevc_filter.c @@ -160,8 +160,8 @@ void ff_hevc_set_qPy(HEVCContext *s, int xC, int yC, if (s->HEVClc->tu.cu_qp_delta != 0) { int off = s->sps->qp_bd_offset; - s->HEVClc->qp_y = ((qp_y + s->HEVClc->tu.cu_qp_delta + 52 + 2 * off) % - (52 + off)) - off; + s->HEVClc->qp_y = FFUMOD(qp_y + s->HEVClc->tu.cu_qp_delta + 52 + 2 * off, + 52 + off) - off; } else s->HEVClc->qp_y = qp_y; } |