diff --git a/CHANGES b/CHANGES index 0e58d281..1ea0ed9c 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,7 @@ What's New for OpenJPEG + : added October 12, 2011 +* [mickael] WIP: resolve heap corruption with p0_07.j2k (credit to Winfried) * [mickael] WIP: correct some memory leaks in applications functions + [mickael] WIP: add a read CBD marker function (JPEG2000 part 2) + [mickael] WIP: add a read MCO marker function (JPEG2000 part 2) diff --git a/libopenjpeg/pi.c b/libopenjpeg/pi.c index 890800ad..f601c769 100644 --- a/libopenjpeg/pi.c +++ b/libopenjpeg/pi.c @@ -680,7 +680,7 @@ opj_pi_iterator_t *pi_create_decode_v2( opj_image_t *p_image, l_current_pi = l_pi; // memory allocation for include - l_current_pi->include = (OPJ_INT16*) opj_calloc(l_tcp->numlayers * l_step_l, sizeof(OPJ_INT16)); + l_current_pi->include = (OPJ_INT16*) opj_calloc((l_tcp->numlayers +1) * l_step_l, sizeof(OPJ_INT16)); if (!l_current_pi->include) { @@ -689,7 +689,7 @@ opj_pi_iterator_t *pi_create_decode_v2( opj_image_t *p_image, pi_destroy_v2(l_pi, l_bound); return 00; } - memset(l_current_pi->include,0,l_tcp->numlayers * l_step_l* sizeof(OPJ_INT16)); + memset(l_current_pi->include,0, (l_tcp->numlayers + 1) * l_step_l* sizeof(OPJ_INT16)); // special treatment for the first packet iterator l_current_comp = l_current_pi->comps;