File tree 1 file changed +6
-4
lines changed
1 file changed +6
-4
lines changed Original file line number Diff line number Diff line change @@ -314,12 +314,14 @@ static bool looksLikeFloatCastOverflowDataV1(void *Data) {
314
314
sizeof (FilenameOrTypeDescriptor));
315
315
316
316
// Heuristic: For float_cast_overflow, the TypeKind will be either TK_Integer
317
- // (0x0) or TK_Float (0x1). Adding both bytes will be 0 or 1 (for BE or LE).
318
- // If it were a filename, adding two printable characters will not yield such
319
- // a value.
317
+ // (0x0), TK_Float (0x1) or TK_Unknown (0xff). If both types are known,
318
+ // adding both bytes will be 0 or 1 (for BE or LE). If it were a filename,
319
+ // adding two printable characters will not yield such a value. Otherwise,
320
+ // if one of them is 0xff, this is most likely TK_Unknown type descriptor.
320
321
u16 MaybeFromTypeKind =
321
322
FilenameOrTypeDescriptor[0 ] + FilenameOrTypeDescriptor[1 ];
322
- return MaybeFromTypeKind < 2 ;
323
+ return MaybeFromTypeKind < 2 || FilenameOrTypeDescriptor[0 ] == 0xff ||
324
+ FilenameOrTypeDescriptor[1 ] == 0xff ;
323
325
}
324
326
325
327
static void handleFloatCastOverflow (void *DataPtr, ValueHandle From,
You can’t perform that action at this time.
0 commit comments