opj_pi_next_pcrl(): avoid undefined shift behaviour. Fixes https://bugs.chromium...
authorEven Rouault <even.rouault@spatialys.com>
Sat, 29 Jul 2017 13:52:11 +0000 (15:52 +0200)
committerEven Rouault <even.rouault@spatialys.com>
Sat, 29 Jul 2017 13:52:11 +0000 (15:52 +0200)
src/lib/openjp2/pi.c

index 4e2e48ad4acd4ece33f15af51c5a4f7b61f07862..c256349b68ac851fec92b43b9dacfd2834dccb13 100644 (file)
@@ -526,7 +526,8 @@ static OPJ_BOOL opj_pi_next_pcrl(opj_pi_iterator_t * pi)
                     /* Avoids division by zero */
                     /* Relates to id_000004,sig_06,src_000679,op_arith8,pos_49,val_-17 */
                     /* of  https://github.com/uclouvain/openjpeg/issues/938 */
-                    if (((comp->dx << levelno) >> levelno) != comp->dx ||
+                    if (levelno >= 32 ||
+                            ((comp->dx << levelno) >> levelno) != comp->dx ||
                             ((comp->dy << levelno) >> levelno) != comp->dy) {
                         continue;
                     }