Overview
In many languages, the compare statement is very
close in appearance to the assignment statement; they
are often confused.
Consequences
Unspecified.
Exposure
period
- Pre-design through Build: The use of tools to
detect this problem is recommended.
- Implementation: Many logic errors can lead to
this condition. It can be exacerbated by lack, or
misuse, of mitigating technologies.
Platform
Required
resources
Any
Severity
High
Likelihood
of
exploit
Low
Avoidance
and
mitigation
- Pre-design: Through Build: Many IDEs and static
analysis products will detect this problem.
Discussion
This bug is mainly a typo and usually should cause
obvious problems with program execution. The assignment
will not always take place.
Examples
In C/C++/Java:
void called(int foo){
foo==1;
if (foo==1) printf("foo\n");
}
int main(){
called(2);
return 0;
}