summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorMatthieu Darbois <mayeut@users.noreply.github.com>2016-04-28 00:18:37 +0200
committerMatthieu Darbois <mayeut@users.noreply.github.com>2016-04-28 00:18:37 +0200
commit66fd497765939d02e8816d6d019839388fffdf79 (patch)
tree580e7c784df2137428d3689474006355cebcbe24 /src/lib
parent5947e10ff7bebdcc8f72ab9246f03db05582fa0a (diff)
Fix unsigned int overflow reported by UBSan (#759)
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/openjp2/tcd.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/lib/openjp2/tcd.c b/src/lib/openjp2/tcd.c
index af6b53f5..d590046f 100644
--- a/src/lib/openjp2/tcd.c
+++ b/src/lib/openjp2/tcd.c
@@ -778,7 +778,7 @@ static INLINE OPJ_BOOL opj_tcd_init_tile(opj_tcd_t *p_tcd, OPJ_UINT32 p_tile_no,
l_tilec->resolutions_size = l_data_size;
}
- l_level_no = l_tilec->numresolutions - 1;
+ l_level_no = l_tilec->numresolutions;
l_res = l_tilec->resolutions;
l_step_size = l_tccp->stepsizes;
if (l_tccp->qmfbid == 0) {
@@ -795,6 +795,8 @@ static INLINE OPJ_BOOL opj_tcd_init_tile(opj_tcd_t *p_tcd, OPJ_UINT32 p_tile_no,
OPJ_UINT32 cbgwidthexpn, cbgheightexpn;
OPJ_UINT32 cblkwidthexpn, cblkheightexpn;
+ --l_level_no;
+
/* border for each resolution level (global) */
l_res->x0 = opj_int_ceildivpow2(l_tilec->x0, (OPJ_INT32)l_level_no);
l_res->y0 = opj_int_ceildivpow2(l_tilec->y0, (OPJ_INT32)l_level_no);
@@ -1024,7 +1026,6 @@ static INLINE OPJ_BOOL opj_tcd_init_tile(opj_tcd_t *p_tcd, OPJ_UINT32 p_tile_no,
++l_step_size;
} /* bandno */
++l_res;
- --l_level_no;
} /* resno */
++l_tccp;
++l_tilec;