fixed segfault with 123.j2c and bug.j2c images (thanks to Tim Mattox for his contribution to this patch)

This commit is contained in:
Mickael Savinaud 2011-08-10 09:00:34 +00:00
parent 9e419fdaf7
commit 6fb9794200
2 changed files with 18 additions and 12 deletions

View File

@ -9,6 +9,7 @@ August 10, 2011
! [mickael] removed unused parameters warnings with the solution proposed by myself and Bob Friesenhahn. ! [mickael] removed unused parameters warnings with the solution proposed by myself and Bob Friesenhahn.
! [mickael] add copyright header into new test functions. ! [mickael] add copyright header into new test functions.
* [mickael] fixed glibc error with broken2 and broken4 images. * [mickael] fixed glibc error with broken2 and broken4 images.
* [mickael] fixed segfault with 123.j2c and bug.j2c images (thanks to Tim Mattox for his improvement).
August 9, 2011 August 9, 2011
- [antonin] removed xcode project files (cmake and autotools are now the only supported build methods) - [antonin] removed xcode project files (cmake and autotools are now the only supported build methods)

View File

@ -1418,18 +1418,23 @@ opj_bool tcd_decode_tile(opj_tcd_t *tcd, unsigned char *src, int len, int tileno
if (tcd->tcp->mct) { if (tcd->tcp->mct) {
int n = (tile->comps[0].x1 - tile->comps[0].x0) * (tile->comps[0].y1 - tile->comps[0].y0); int n = (tile->comps[0].x1 - tile->comps[0].x0) * (tile->comps[0].y1 - tile->comps[0].y0);
if (tcd->tcp->tccps[0].qmfbid == 1) {
mct_decode( if (tile->numcomps >= 3 ){
tile->comps[0].data, if (tcd->tcp->tccps[0].qmfbid == 1) {
tile->comps[1].data, mct_decode(
tile->comps[2].data, tile->comps[0].data,
n); tile->comps[1].data,
} else { tile->comps[2].data,
mct_decode_real( n);
(float*)tile->comps[0].data, } else {
(float*)tile->comps[1].data, mct_decode_real(
(float*)tile->comps[2].data, (float*)tile->comps[0].data,
n); (float*)tile->comps[1].data,
(float*)tile->comps[2].data,
n);
}
} else{
opj_event_msg(tcd->cinfo, EVT_WARNING,"Number of components (%d) is inconsistent with a MCT. Skip the MCT step.\n",tile->numcomps);
} }
} }