Add more rules to make sure image is valid

This commit is contained in:
Philip Heron 2011-06-24 23:24:12 +01:00
parent 2c90f35f92
commit ca837206d5
1 changed files with 12 additions and 0 deletions

12
ssdv.c
View File

@ -498,6 +498,11 @@ static char ssdv_have_marker(ssdv_t *s)
s->state = S_MARKER_DATA; s->state = S_MARKER_DATA;
break; break;
case J_SOF2:
/* Don't do progressive images! */
fprintf(stderr, "Error: Progressive images not supported\n");
return(SSDV_ERROR);
case J_DHT: case J_DHT:
case J_DQT: case J_DQT:
/* Copy the tables into memory */ /* Copy the tables into memory */
@ -555,6 +560,13 @@ static char ssdv_have_marker_data(ssdv_t *s)
return(SSDV_ERROR); return(SSDV_ERROR);
} }
/* Maximum image is 4080x4080 */
if(s->width > 4080 || s->height > 4080)
{
fprintf(stderr, "Error: The image is too big. Maximum resolution is 4080x4080\n");
return(SSDV_ERROR);
}
/* The image dimensions must be a multiple of 16 */ /* The image dimensions must be a multiple of 16 */
if((s->width & 0x0F) || (s->height & 0x0F)) if((s->width & 0x0F) || (s->height & 0x0F))
{ {