blob: 5c7a9271ee8d1de414df0a24d00aac8f6978a1e5 [file] [log] [blame]
diff --git a/jdmarker.c b/jdmarker.c
index 0d5da67..b537cb0 100644
--- a/jdmarker.c
+++ b/jdmarker.c
@@ -347,6 +347,12 @@ get_sos (j_decompress_ptr cinfo)
TRACEMS3(cinfo, 1, JTRC_SOS_COMPONENT, cc,
compptr->dc_tbl_no, compptr->ac_tbl_no);
+
+ /* This CSi (cc) should differ from the previous CSi */
+ for (ci = 0; ci < i; ci++) {
+ if (cinfo->cur_comp_info[ci] == compptr)
+ ERREXIT1(cinfo, JERR_BAD_COMPONENT_ID, cc);
+ }
}
/* Collect the additional scan parameters Ss, Se, Ah/Al. */
@@ -470,6 +470,7 @@ get_dht (j_decompress_ptr cinfo)
for (i = 0; i < count; i++)
INPUT_BYTE(cinfo, huffval[i], return FALSE);
+ MEMZERO(&huffval[count], (256 - count) * SIZEOF(UINT8));
length -= count;
if (index & 0x10) { /* AC table definition */