diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2017-07-29 15:52:11 +0200 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2017-07-29 15:52:11 +0200 |
| commit | 71b4f5b124d14ed609763b11e19d2d480bc32f58 (patch) | |
| tree | b37300bc2643cc8256b3988faf1207eea75118d3 /src/lib | |
| parent | d6654d906c1ae66590b6d600458a91f1ee923de5 (diff) | |
opj_pi_next_pcrl(): avoid undefined shift behaviour. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2787. Credit to OSS Fuzz
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/openjp2/pi.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lib/openjp2/pi.c b/src/lib/openjp2/pi.c index 4e2e48ad..c256349b 100644 --- a/src/lib/openjp2/pi.c +++ b/src/lib/openjp2/pi.c @@ -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; } |
