2017.06.27 13:16 "[Tiff] Double to float conversion is not always valid", by Nicolas RUFF
Hello,
ASAN/UBSAN will flag the following operation in tif_dirread.c as a "float-cast-overflow" - which is true, a double cannot always fit into a float. I suggest the following fix:
case TIFF_DOUBLE:
{
double m;
err=TIFFReadDirEntryCheckedDouble(tif,direntry,&m);
if (err!=TIFFReadDirEntryErrOk)
return(err);
+ if ((m > FLT_MAX) || (m < FLT_MIN))
+ return(TIFFReadDirEntryErrRange);
*value=(float)m;
return(TIFFReadDirEntryErrOk);
}
WDYT?
Regards,
- Nicolas RUFF