...
Correcting this example depends on the intent of the programmer. For instanceexample, if dereferencing p
was a mistake, then p
should not be dereferenced.
...
Code Block | ||||
---|---|---|---|---|
| ||||
if (param == 1)
openWindow();
else if (param == 2)
closeWindow();
else if (param == 3)
moveWindowToTheBackground();
|
Noncompliant Code Example (logical operators)
Using the same subexpression on either side of a logical operator is almost always a mistake. In this noncompliant code example, the rightmost subexpression of the controlling expression of each if
statement has no effect.
Code Block | ||||
---|---|---|---|---|
| ||||
if (a == b && a == b) { // if the first one is true, the second one is too
do_x();
}
if (a == c || a == c ) { // if the first one is true, the second one is too
do_w();
}
|
Compliant Solution (logical operators)
In this compliant solution, the rightmost subexpression of the controlling expression of each if
statement has been removed.
Code Block | ||||
---|---|---|---|---|
| ||||
if (a == b) { do_x(); } if (a == c) { do_w(); } |
Risk Assessment
The presence of code that has no effect can indicate logic errors that may result in unexpected behavior and vulnerabilities.
...