]> granicus.if.org Git - openjpeg/commitdiff
opj_t1_decode_cblk(): avoid undefined shift behaviour. Fixes https://bugs.chromium...
authorEven Rouault <even.rouault@spatialys.com>
Sat, 29 Jul 2017 14:34:35 +0000 (16:34 +0200)
committerEven Rouault <even.rouault@spatialys.com>
Sat, 29 Jul 2017 14:34:35 +0000 (16:34 +0200)
src/lib/openjp2/t1.c

index 3615a0e6690c6cfd3dd927459b3fa5bb7d4e10c2..9ab7af30fa87bff1272b4d523da7eca5c5608d45 100644 (file)
@@ -1822,6 +1822,18 @@ static OPJ_BOOL opj_t1_decode_cblk(opj_t1_t *t1,
     }
 
     bpno_plus_one = (OPJ_INT32)(roishift + cblk->numbps);
+    if (bpno_plus_one >= 31) {
+        if (p_manager_mutex) {
+            opj_mutex_lock(p_manager_mutex);
+        }
+        opj_event_msg(p_manager, EVT_WARNING,
+                      "opj_t1_decode_cblk(): unsupported bpno_plus_one = %d >= 31\n",
+                      bpno_plus_one);
+        if (p_manager_mutex) {
+            opj_mutex_unlock(p_manager_mutex);
+        }
+        return OPJ_FALSE;
+    }
     passtype = 2;
 
     opj_mqc_resetstates(mqc);