Index: openjpeg-1.5.1/libopenjpeg/j2k.c =================================================================== --- openjpeg-1.5.1.orig/libopenjpeg/j2k.c 2013-01-01 01:01:01.000000000 +0000 +++ openjpeg-1.5.1/libopenjpeg/j2k.c 2013-01-01 01:01:01.000000000 +0000 @@ -1673,8 +1673,11 @@ static void j2k_read_eoc(opj_j2k_t *j2k) else { for (i = 0; i < j2k->cp->tileno_size; i++) { tileno = j2k->cp->tileno[i]; - opj_free(j2k->tile_data[tileno]); - j2k->tile_data[tileno] = NULL; + /* not sure if this can actually happen */ + if (tileno != -1) { + opj_free(j2k->tile_data[tileno]); + j2k->tile_data[tileno] = NULL; + } } } if (j2k->state & J2K_STATE_ERR) @@ -1834,8 +1837,10 @@ void j2k_destroy_decompress(opj_j2k_t *j if(j2k->cp != NULL) { for (i = 0; i < j2k->cp->tileno_size; i++) { int tileno = j2k->cp->tileno[i]; - opj_free(j2k->tile_data[tileno]); - j2k->tile_data[tileno] = NULL; + if (tileno != -1) { + opj_free(j2k->tile_data[tileno]); + j2k->tile_data[tileno] = NULL; + } } }