mirror of
https://github.com/github/codeql.git
synced 2026-02-14 14:11:20 +01:00
Moves the existing points-to predicates to the newly added class `ControlFlowNodeWithPointsTo` which resides in the `LegacyPointsTo` module. (Existing code that uses these predicates should import this module, and references to `ControlFlowNode` should be changed to `ControlFlowNodeWithPointsTo`.) Also updates all existing points-to based code to do just this.
15 lines
489 B
Plaintext
15 lines
489 B
Plaintext
import python
|
|
private import LegacyPointsTo
|
|
import semmle.python.objects.ObjectInternal
|
|
|
|
string vrepr(Value v) {
|
|
/* Work around differing names in 2/3 */
|
|
not v = ObjectInternal::boundMethod() and result = v.toString()
|
|
or
|
|
v = ObjectInternal::boundMethod() and result = "builtin-class method"
|
|
}
|
|
|
|
from ControlFlowNodeWithPointsTo f, Context ctx, Value v, ControlFlowNode origin
|
|
where f.pointsTo(ctx, v, origin)
|
|
select f.getLocation(), f.toString(), ctx, vrepr(v), vrepr(v.getClass())
|