diff options
Diffstat (limited to 'third_party/libopenjpeg20/0029-avoid-division-by-0.patch')
-rw-r--r-- | third_party/libopenjpeg20/0029-avoid-division-by-0.patch | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/third_party/libopenjpeg20/0029-avoid-division-by-0.patch b/third_party/libopenjpeg20/0029-avoid-division-by-0.patch deleted file mode 100644 index 4ea2b7ce3c..0000000000 --- a/third_party/libopenjpeg20/0029-avoid-division-by-0.patch +++ /dev/null @@ -1,119 +0,0 @@ -diff --git a/third_party/libopenjpeg20/pi.c b/third_party/libopenjpeg20/pi.c -index 9097e31a0..083674222 100644 ---- a/third_party/libopenjpeg20/pi.c -+++ b/third_party/libopenjpeg20/pi.c -@@ -355,12 +355,20 @@ if (!pi->tp_on){ - } - res = &comp->resolutions[pi->resno]; - levelno = comp->numresolutions - 1 - pi->resno; -- trx0 = opj_int_ceildiv(pi->tx0, (OPJ_INT32)(comp->dx << levelno)); -- try0 = opj_int_ceildiv(pi->ty0, (OPJ_INT32)(comp->dy << levelno)); -- trx1 = opj_int_ceildiv(pi->tx1, (OPJ_INT32)(comp->dx << levelno)); -- try1 = opj_int_ceildiv(pi->ty1, (OPJ_INT32)(comp->dy << levelno)); -+ OPJ_INT32 x_divisor = comp->dx << levelno; -+ OPJ_INT32 y_divisor = comp->dy << levelno; -+ if (x_divisor == 0 || y_divisor == 0) { -+ continue; -+ } -+ trx0 = opj_int_ceildiv(pi->tx0, x_divisor); -+ try0 = opj_int_ceildiv(pi->ty0, y_divisor); -+ trx1 = opj_int_ceildiv(pi->tx1, x_divisor); -+ try1 = opj_int_ceildiv(pi->ty1, y_divisor); - rpx = res->pdx + levelno; - rpy = res->pdy + levelno; -+ if (comp->dy << rpy == 0 || 1 << rpy == 0 || comp->dx << rpx == 0 || 1 << rpx == 0) { -+ continue; -+ } - if (!((pi->y % (OPJ_INT32)(comp->dy << rpy) == 0) || ((pi->y == pi->ty0) && ((try0 << levelno) % (1 << rpy))))){ - continue; - } -@@ -372,9 +380,9 @@ if (!pi->tp_on){ - - if ((trx0==trx1)||(try0==try1)) continue; - -- prci = opj_int_floordivpow2(opj_int_ceildiv(pi->x, (OPJ_INT32)(comp->dx << levelno)), (OPJ_INT32)res->pdx) -+ prci = opj_int_floordivpow2(opj_int_ceildiv(pi->x, x_divisor), (OPJ_INT32)res->pdx) - - opj_int_floordivpow2(trx0, (OPJ_INT32)res->pdx); -- prcj = opj_int_floordivpow2(opj_int_ceildiv(pi->y, (OPJ_INT32)(comp->dy << levelno)), (OPJ_INT32)res->pdy) -+ prcj = opj_int_floordivpow2(opj_int_ceildiv(pi->y, y_divisor), (OPJ_INT32)res->pdy) - - opj_int_floordivpow2(try0, (OPJ_INT32)res->pdy); - pi->precno = (OPJ_UINT32)(prci + prcj * (OPJ_INT32)res->pw); - if (pi->precno >= res->pw * res->ph) { -@@ -439,12 +447,20 @@ static OPJ_BOOL opj_pi_next_pcrl(opj_pi_iterator_t * pi) { - OPJ_INT32 prci, prcj; - res = &comp->resolutions[pi->resno]; - levelno = comp->numresolutions - 1 - pi->resno; -- trx0 = opj_int_ceildiv(pi->tx0, (OPJ_INT32)(comp->dx << levelno)); -- try0 = opj_int_ceildiv(pi->ty0, (OPJ_INT32)(comp->dy << levelno)); -- trx1 = opj_int_ceildiv(pi->tx1, (OPJ_INT32)(comp->dx << levelno)); -- try1 = opj_int_ceildiv(pi->ty1, (OPJ_INT32)(comp->dy << levelno)); -+ OPJ_INT32 x_divisor = comp->dx << levelno; -+ OPJ_INT32 y_divisor = comp->dy << levelno; -+ if (x_divisor == 0 || y_divisor == 0) { -+ continue; -+ } -+ trx0 = opj_int_ceildiv(pi->tx0, x_divisor); -+ try0 = opj_int_ceildiv(pi->ty0, y_divisor); -+ trx1 = opj_int_ceildiv(pi->tx1, x_divisor); -+ try1 = opj_int_ceildiv(pi->ty1, y_divisor); - rpx = res->pdx + levelno; - rpy = res->pdy + levelno; -+ if (comp->dy << rpy == 0 || 1 << rpy == 0 || comp->dx << rpx == 0 || 1 << rpx == 0) { -+ continue; -+ } - if (!((pi->y % (OPJ_INT32)(comp->dy << rpy) == 0) || ((pi->y == pi->ty0) && ((try0 << levelno) % (1 << rpy))))){ - continue; - } -@@ -456,9 +472,9 @@ static OPJ_BOOL opj_pi_next_pcrl(opj_pi_iterator_t * pi) { - - if ((trx0==trx1)||(try0==try1)) continue; - -- prci = opj_int_floordivpow2(opj_int_ceildiv(pi->x, (OPJ_INT32)(comp->dx << levelno)), (OPJ_INT32)res->pdx) -+ prci = opj_int_floordivpow2(opj_int_ceildiv(pi->x, x_divisor), (OPJ_INT32)res->pdx) - - opj_int_floordivpow2(trx0, (OPJ_INT32)res->pdx); -- prcj = opj_int_floordivpow2(opj_int_ceildiv(pi->y, (OPJ_INT32)(comp->dy << levelno)), (OPJ_INT32)res->pdy) -+ prcj = opj_int_floordivpow2(opj_int_ceildiv(pi->y, y_divisor), (OPJ_INT32)res->pdy) - - opj_int_floordivpow2(try0, (OPJ_INT32)res->pdy); - pi->precno = (OPJ_UINT32)(prci + prcj * (OPJ_INT32)res->pw); - if (pi->precno >= res->pw * res->ph) { -@@ -521,26 +537,33 @@ static OPJ_BOOL opj_pi_next_cprl(opj_pi_iterator_t * pi) { - OPJ_INT32 prci, prcj; - res = &comp->resolutions[pi->resno]; - levelno = comp->numresolutions - 1 - pi->resno; -- trx0 = opj_int_ceildiv(pi->tx0, (OPJ_INT32)(comp->dx << levelno)); -- try0 = opj_int_ceildiv(pi->ty0, (OPJ_INT32)(comp->dy << levelno)); -- trx1 = opj_int_ceildiv(pi->tx1, (OPJ_INT32)(comp->dx << levelno)); -- try1 = opj_int_ceildiv(pi->ty1, (OPJ_INT32)(comp->dy << levelno)); -+ OPJ_INT32 x_divisor = comp->dx << levelno; -+ OPJ_INT32 y_divisor = comp->dy << levelno; -+ if (x_divisor == 0 || y_divisor == 0) { -+ continue; -+ } -+ trx0 = opj_int_ceildiv(pi->tx0, x_divisor); -+ try0 = opj_int_ceildiv(pi->ty0, y_divisor); -+ trx1 = opj_int_ceildiv(pi->tx1, x_divisor); -+ try1 = opj_int_ceildiv(pi->ty1, y_divisor); - rpx = res->pdx + levelno; - rpy = res->pdy + levelno; -+ if (comp->dy << rpy == 0 || 1 << rpy == 0 || comp->dx << rpx == 0 || 1 << rpx == 0) { -+ continue; -+ } - if (!((pi->y % (OPJ_INT32)(comp->dy << rpy) == 0) || ((pi->y == pi->ty0) && ((try0 << levelno) % (1 << rpy))))){ - continue; - } - if (!((pi->x % (OPJ_INT32)(comp->dx << rpx) == 0) || ((pi->x == pi->tx0) && ((trx0 << levelno) % (1 << rpx))))){ - continue; - } -- - if ((res->pw==0)||(res->ph==0)) continue; - - if ((trx0==trx1)||(try0==try1)) continue; - -- prci = opj_int_floordivpow2(opj_int_ceildiv(pi->x, (OPJ_INT32)(comp->dx << levelno)), (OPJ_INT32)res->pdx) -+ prci = opj_int_floordivpow2(opj_int_ceildiv(pi->x, x_divisor), (OPJ_INT32)res->pdx) - - opj_int_floordivpow2(trx0, (OPJ_INT32)res->pdx); -- prcj = opj_int_floordivpow2(opj_int_ceildiv(pi->y, (OPJ_INT32)(comp->dy << levelno)), (OPJ_INT32)res->pdy) -+ prcj = opj_int_floordivpow2(opj_int_ceildiv(pi->y, y_divisor), (OPJ_INT32)res->pdy) - - opj_int_floordivpow2(try0, (OPJ_INT32)res->pdy); - pi->precno = (OPJ_UINT32)(prci + prcj * (OPJ_INT32)res->pw); - if (pi->precno >= res->pw * res->ph) { |