From: Mickael Savinaud Date: Mon, 26 Nov 2012 16:24:29 +0000 (+0000) Subject: [trun[trunk] check if the dx and dy steps are not incorrect according to the JPEG2000... X-Git-Tag: version.2.0.1~4^2~328 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=59582bafa39fc2e0e20e10c0538dbc59d3948deb;p=openjpeg [trun[trunk] check if the dx and dy steps are not incorrect according to the JPEG2000 norm (thanks Even). Test associated to this issue should nicely fail. Fixes issue 194 --- diff --git a/src/lib/openjp2/j2k.c b/src/lib/openjp2/j2k.c index 0c0fb102..3b439fc7 100644 --- a/src/lib/openjp2/j2k.c +++ b/src/lib/openjp2/j2k.c @@ -1998,6 +1998,13 @@ static OPJ_BOOL opj_j2k_read_siz(opj_j2k_t *p_j2k, opj_read_bytes(p_header_data,&tmp,1); /* YRsiz_i */ ++p_header_data; l_img_comp->dy = (OPJ_INT32)tmp; /* should be between 1 and 255 */ + if( l_img_comp->dx < 1 || l_img_comp->dx > 255 || + l_img_comp->dy < 1 || l_img_comp->dy > 255 ) { + opj_event_msg(p_manager, EVT_ERROR, + "Invalid values for comp = %d : dx=%u dy=%u\n (should be between 1 and 255 according the JPEG2000 norm)", + i, l_img_comp->dx, l_img_comp->dy); + return OPJ_FALSE; + } #ifdef USE_JPWL if (l_cp->correct) { diff --git a/tests/nonregression/test_suite.ctest.in b/tests/nonregression/test_suite.ctest.in index 2396a474..3fc52fe8 100644 --- a/tests/nonregression/test_suite.ctest.in +++ b/tests/nonregression/test_suite.ctest.in @@ -80,8 +80,8 @@ opj_decompress -i @INPUT_NR_PATH@/mem-b2b86b74-2753.jp2 -o @TEMP_PATH@/mem-b2b8 ! opj_decompress -i @INPUT_NR_PATH@/gdal_fuzzer_assert_in_opj_j2k_read_SQcd_SQcc.patch.jp2 -o @TEMP_PATH@/gdal_fuzzer_assert_in_opj_j2k_read_SQcd_SQcc.patch.pgx # issue 193 raised by the gdal fuzzer test (should nicely failed) !opj_decompress -i @INPUT_NR_PATH@/gdal_fuzzer_check_number_of_tiles.jp2 -o @TEMP_PATH@/gdal_fuzzer_check_number_of_tiles.pgx -# issue 194 raised by the gdal fuzzer test (should properly failed) -opj_decompress -i @INPUT_NR_PATH@/gdal_fuzzer_check_comp_dx_dy.jp2 -o @TEMP_PATH@/gdal_fuzzer_check_comp_dx_dy.pgx +# issue 194 raised by the gdal fuzzer test (should nicely failed) +! opj_decompress -i @INPUT_NR_PATH@/gdal_fuzzer_check_comp_dx_dy.jp2 -o @TEMP_PATH@/gdal_fuzzer_check_comp_dx_dy.pgx # decode with specific area # prec=12; nb_c=1