Add more rules to make sure image is valid
This commit is contained in:
parent
2c90f35f92
commit
ca837206d5
12
ssdv.c
12
ssdv.c
|
@ -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))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue