Class SsaInputNode
A node that represents an input to an SSA phi (read) definition.
This allows for barrier guards to filter input to phi nodes. For example, in
var x = taint;
if (x != "safe")
{
x = "safe";
}
sink(x);
the false edge out of x != "safe" guards the input from x = taint into the
phi node after the condition.
It is also relevant to filter input into phi read nodes:
var x = taint;
if (b)
{
if (x != "safe1")
{
return;
}
} else {
if (x != "safe2")
{
return;
}
}
sink(x);
both inputs into the phi read node after the outer condition are guarded.
Import path
import semmle.code.csharp.dataflow.internal.DataFlowPrivateDirect supertypes
Fields
Inherited predicates
| asDefinition | Gets the definition corresponding to this node, if any. | from Node |
| asDefinitionAtNode | Gets the definition corresponding to this node, at control flow node | from Node |
| asExpr | Gets the expression corresponding to this node, if any. | from Node |
| asExprAtNode | Gets the expression corresponding to this node, at control flow node | from Node |
| asParameter | Gets the parameter corresponding to this node, if any. | from Node |
| getControlFlowNode | Gets the control flow node corresponding to this node, if any. | from Node |
| getControlFlowNodeImpl | Do not call: use | from SsaNode |
| getDataFlowType | Gets the type of this node used for type pruning. | from NodeImpl |
| getDefinitionExt | from SsaNode | |
| getEnclosingCallable | Gets the enclosing callable of this node. | from Node |
| getEnclosingCallableImpl | Do not call: use | from SsaNode |
| getLocation | Gets the location of this node. | from Node |
| getLocationImpl | Do not call: use | from SsaNode |
| getType | Gets the type of this node. | from Node |
| getTypeImpl | Do not call: use | from SsaNode |
| hasLocationInfo | Holds if this element is at the specified location. The location spans column | from Node |
| toString | Gets a textual representation of this node. | from Node |
| toStringImpl | Do not call: use | from SsaNode |