CWE-481

Assigning instead of Comparing
AI Translation Available

The code uses an operator for assignment when the intention was to perform a comparison.

Status
draft
Abstraction
variant
Likelihood
low
C C# C++ Java

In many languages the compare statement is very close in appearance to the assignment statement and are often confused. This bug is generally the result of a typo and usually causes obvious problems with program execution. If the comparison is in an if statement, the if statement will usually evaluate the value of the right-hand side of the predicate.

Common Consequences

other
Impacts
alter execution logic

Detection Methods

automated static analysis

Potential Mitigations

Phases:
testing implementation
Descriptions:
• Many IDEs and static analysis products will detect this problem.
• Place constants on the left. If one attempts to assign a constant with a variable, the compiler will produce an error.