Fix assertion in debug mode / heap-based buffer overflow in opj_write_bytes_LE for...
authorEven Rouault <even.rouault@spatialys.com>
Tue, 15 Aug 2017 09:55:58 +0000 (11:55 +0200)
committerEven Rouault <even.rouault@spatialys.com>
Tue, 15 Aug 2017 09:55:58 +0000 (11:55 +0200)
src/lib/openjp2/j2k.c

index a2521ebbc35162beaf82033fc26a8bd85044b873..54b490a8c5ceb83cd5451bb1f223f66d431a2fa3 100644 (file)
@@ -6573,10 +6573,16 @@ static void opj_j2k_set_cinema_parameters(opj_cparameters_t *parameters,
 
     /* Precincts */
     parameters->csty |= 0x01;
-    parameters->res_spec = parameters->numresolution - 1;
-    for (i = 0; i < parameters->res_spec; i++) {
-        parameters->prcw_init[i] = 256;
-        parameters->prch_init[i] = 256;
+    if (parameters->numresolution == 1) {
+        parameters->res_spec = 1;
+        parameters->prcw_init[0] = 128;
+        parameters->prch_init[0] = 128;
+    } else {
+        parameters->res_spec = parameters->numresolution - 1;
+        for (i = 0; i < parameters->res_spec; i++) {
+            parameters->prcw_init[i] = 256;
+            parameters->prch_init[i] = 256;
+        }
     }
 
     /* The progression order shall be CPRL */