[trunk] Make sure when reading POC that number of layers (layer end) is within accept...
authorMathieu Malaterre <mathieu.malaterre@gmail.com>
Wed, 12 Mar 2014 10:10:21 +0000 (10:10 +0000)
committerMathieu Malaterre <mathieu.malaterre@gmail.com>
Wed, 12 Mar 2014 10:10:21 +0000 (10:10 +0000)
Fixes issue 80

src/lib/openjp2/j2k.c

index 466e61b252312eca14adf207e3f7c17301da90bb..ce5ef77f362ba31b7a194977f67b96820913dd4c 100644 (file)
@@ -3175,6 +3175,8 @@ static OPJ_BOOL opj_j2k_read_poc (  opj_j2k_t *p_j2k,
                 opj_read_bytes(p_header_data,&(l_current_poc->compno0),l_comp_room);    /* CSpoc_i */
                 p_header_data+=l_comp_room;
                 opj_read_bytes(p_header_data,&(l_current_poc->layno1),2);                               /* LYEpoc_i */
+                /* make sure layer end is in acceptable bounds */
+                l_current_poc->layno1 = opj_uint_min(l_current_poc->layno1, l_tcp->numlayers);
                 p_header_data+=2;
                 opj_read_bytes(p_header_data,&(l_current_poc->resno1),1);                               /* REpoc_i */
                 ++p_header_data;