Skip to content

Commit 4241ae6

Browse files
committed
Fix assertion in debug mode / heap-based buffer overflow in opj_write_bytes_LE for Cinema profiles with numresolutions = 1 (#985)
1 parent 52d5690 commit 4241ae6

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

Diff for: src/lib/openjp2/j2k.c

+10-4
Original file line numberDiff line numberDiff line change
@@ -6573,10 +6573,16 @@ static void opj_j2k_set_cinema_parameters(opj_cparameters_t *parameters,
65736573

65746574
/* Precincts */
65756575
parameters->csty |= 0x01;
6576-
parameters->res_spec = parameters->numresolution - 1;
6577-
for (i = 0; i < parameters->res_spec; i++) {
6578-
parameters->prcw_init[i] = 256;
6579-
parameters->prch_init[i] = 256;
6576+
if (parameters->numresolution == 1) {
6577+
parameters->res_spec = 1;
6578+
parameters->prcw_init[0] = 128;
6579+
parameters->prch_init[0] = 128;
6580+
} else {
6581+
parameters->res_spec = parameters->numresolution - 1;
6582+
for (i = 0; i < parameters->res_spec; i++) {
6583+
parameters->prcw_init[i] = 256;
6584+
parameters->prch_init[i] = 256;
6585+
}
65806586
}
65816587

65826588
/* The progression order shall be CPRL */

0 commit comments

Comments
 (0)