diff --git a/libopenjpeg/j2k.c b/libopenjpeg/j2k.c index c3635964..a4a17ff2 100644 --- a/libopenjpeg/j2k.c +++ b/libopenjpeg/j2k.c @@ -1125,6 +1125,8 @@ static void j2k_read_poc(opj_j2k_t *j2k) { poc->resno0 = cio_read(cio, 1); /* RSpoc_i */ poc->compno0 = cio_read(cio, numcomps <= 256 ? 1 : 2); /* CSpoc_i */ poc->layno1 = cio_read(cio, 2); /* LYEpoc_i */ + /* make sure layer end is in acceptable bounds - issue 80*/ + poc->layno1 = int_min(poc->layno1, (unsigned int) tcp->numlayers); poc->resno1 = cio_read(cio, 1); /* REpoc_i */ poc->compno1 = int_min( cio_read(cio, numcomps <= 256 ? 1 : 2), (unsigned int) numcomps); /* CEpoc_i */