X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2Fjpeg%2Flibijg12%2Fjchuff12.c;h=7b879a1e09c25ea8c1173359a94f038696d40f27;hb=480c944ba4a88fd4011a489feea7bcfc6051a7ac;hp=1d745c8734b6459b2e6f3404baf245f4dcc27a23;hpb=de0306fc7eb3c521ddc9aaac1496a8d4ce1477cb;p=gdcm.git diff --git a/src/jpeg/libijg12/jchuff12.c b/src/jpeg/libijg12/jchuff12.c index 1d745c87..7b879a1e 100644 --- a/src/jpeg/libijg12/jchuff12.c +++ b/src/jpeg/libijg12/jchuff12.c @@ -109,6 +109,8 @@ start_pass_huff (j_compress_ptr cinfo, boolean gather_statistics) int ci, dctbl, actbl; jpeg_component_info * compptr; +fprintf (stderr,"=======================================================JPEG12\n"); + if (gather_statistics) { #ifdef ENTROPY_OPT_SUPPORTED entropy->pub.encode_mcu = encode_mcu_gather; @@ -210,8 +212,10 @@ jpeg_make_c_derived_tbl (j_compress_ptr cinfo, boolean isDC, int tblno, p = 0; for (l = 1; l <= 16; l++) { i = (int) htbl->bits[l]; - if (i < 0 || p + i > 256) /* protect against table overrun */ + if (i < 0 || p + i > 256) { /* protect against table overrun */ + printf ("JERR_BAD_HUFF_TABLE : protect against table overrun (i=%d p=%d)\n",i,p); ERREXIT(cinfo, JERR_BAD_HUFF_TABLE); + } while (i--) huffsize[p++] = (char) l; } @@ -232,8 +236,10 @@ jpeg_make_c_derived_tbl (j_compress_ptr cinfo, boolean isDC, int tblno, /* code is now 1 more than the last code used for codelength si; but * it must still fit in si bits, since no code is allowed to be all ones. */ - if (((INT32) code) >= (((INT32) 1) << si)) + if (((INT32) code) >= (((INT32) 1) << si)) { + printf("JERR_BAD_HUFF_TABLE : (((INT32) code) >= (((INT32) 1) << si)) code %d si%d\v",code, si); ERREXIT(cinfo, JERR_BAD_HUFF_TABLE); + } code <<= 1; si++; } @@ -256,8 +262,10 @@ jpeg_make_c_derived_tbl (j_compress_ptr cinfo, boolean isDC, int tblno, for (p = 0; p < lastp; p++) { i = htbl->huffval[p]; - if (i < 0 || i > maxsymbol || dtbl->ehufsi[i]) + if (i < 0 || i > maxsymbol || dtbl->ehufsi[i]) { + printf("JERR_BAD_HUFF_TABLE (i < 0 || i > maxsymbol || dtbl->ehufsi[i]) i %d maxsymbol %d dtbl->ehufsi[i] %d\n", i, maxsymbol, dtbl->ehufsi[i]); ERREXIT(cinfo, JERR_BAD_HUFF_TABLE); + } dtbl->ehufco[i] = huffcode[p]; dtbl->ehufsi[i] = huffsize[p]; }