@ -1297,9 +1297,13 @@ static int tiff_decode_tag(TiffContext *s, AVFrame *frame)
s - > is_thumbnail = ( value ! = 0 ) ;
break ;
case TIFF_WIDTH :
if ( value > INT_MAX )
return AVERROR_INVALIDDATA ;
s - > width = value ;
break ;
case TIFF_HEIGHT :
if ( value > INT_MAX )
return AVERROR_INVALIDDATA ;
s - > height = value ;
break ;
case TIFF_BPP :
@ -1431,12 +1435,18 @@ static int tiff_decode_tag(TiffContext *s, AVFrame *frame)
s - > tile_byte_counts_offset = off ;
break ;
case TIFF_TILE_LENGTH :
if ( value > INT_MAX )
return AVERROR_INVALIDDATA ;
s - > tile_length = value ;
break ;
case TIFF_TILE_WIDTH :
if ( value > INT_MAX )
return AVERROR_INVALIDDATA ;
s - > tile_width = value ;
break ;
case TIFF_PREDICTOR :
if ( value > INT_MAX )
return AVERROR_INVALIDDATA ;
s - > predictor = value ;
break ;
case TIFF_SUB_IFDS :
@ -1581,12 +1591,18 @@ static int tiff_decode_tag(TiffContext *s, AVFrame *frame)
}
break ;
case TIFF_T4OPTIONS :
if ( s - > compr = = TIFF_G3 )
if ( s - > compr = = TIFF_G3 ) {
if ( value > INT_MAX )
return AVERROR_INVALIDDATA ;
s - > fax_opts = value ;
}
break ;
case TIFF_T6OPTIONS :
if ( s - > compr = = TIFF_G4 )
if ( s - > compr = = TIFF_G4 ) {
if ( value > INT_MAX )
return AVERROR_INVALIDDATA ;
s - > fax_opts = value ;
}
break ;
# define ADD_METADATA(count, name, sep)\
if ( ( ret = add_metadata ( count , type , name , sep , s , frame ) ) < 0 ) { \