mirror of
https://github.com/github/codeql.git
synced 2026-04-29 18:55:14 +02:00
C++: Fix use-after-cast bug in SimpleRangeAnalysis
Like everywhere else in the range analysis, operands to comparison operators must be considered in their fully-converted form.
This commit is contained in:
@@ -74,7 +74,7 @@ void use_after_cast(unsigned char c)
|
||||
unsigned short c_times_2 = c + c;
|
||||
if ((unsigned char)c_times_2 == 0)
|
||||
{
|
||||
c_times_2; // BUG: upper bound should be 510, not 0
|
||||
c_times_2;
|
||||
}
|
||||
c_times_2; // BUG: upper bound should be 510, not 255
|
||||
c_times_2;
|
||||
}
|
||||
|
||||
@@ -462,5 +462,5 @@
|
||||
| test.cpp:74:30:74:30 | c | 255.0 |
|
||||
| test.cpp:74:34:74:34 | c | 255.0 |
|
||||
| test.cpp:75:22:75:30 | c_times_2 | 510.0 |
|
||||
| test.cpp:77:5:77:13 | c_times_2 | 0.0 |
|
||||
| test.cpp:79:3:79:11 | c_times_2 | 255.0 |
|
||||
| test.cpp:77:5:77:13 | c_times_2 | 510.0 |
|
||||
| test.cpp:79:3:79:11 | c_times_2 | 510.0 |
|
||||
|
||||
Reference in New Issue
Block a user