AWARE SYSTEMS
TIFF and LibTiff Mail List Archive

Thread

2017.06.27 13:16 "[Tiff] Double to float conversion is not always valid", by Nicolas RUFF
2017.06.27 13:44 "Re: [Tiff] Double to float conversion is not always valid", by Even Rouault

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