[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
This commit is contained in:
Mickael Savinaud 2012-11-26 16:24:29 +00:00
parent 1ad85ac9ee
commit 59582bafa3
2 changed files with 9 additions and 2 deletions

View File

@ -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) {

View File

@ -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