mirror of
https://github.com/github/codeql.git
synced 2025-12-19 18:33:16 +01:00
Will need subsequent PRs fixing up test failures (due to deprecated methods moving around), but other than that everything should be straight-forward.
26 lines
717 B
Plaintext
26 lines
717 B
Plaintext
import python
|
|
import Util
|
|
import semmle.python.pointsto.PointsTo
|
|
import semmle.python.objects.ObjectInternal
|
|
|
|
/* This test should return _no_ results. */
|
|
predicate relevant_node(ControlFlowNode n) {
|
|
exists(CallNode c |
|
|
c.getFunction().(NameNode).getId() = "check" and
|
|
n = c.getAnArg()
|
|
)
|
|
or
|
|
exists(Comment c, string filepath, int bl |
|
|
n.getNode().getScope().getLocation().hasLocationInfo(filepath, bl, _, _, _) and
|
|
c.getLocation().hasLocationInfo(filepath, bl, _, _, _) and
|
|
c.getText().matches("%check") and
|
|
not n.(NameNode).isStore()
|
|
)
|
|
}
|
|
|
|
from ControlFlowNode f
|
|
where
|
|
relevant_node(f) and
|
|
not PointsTo::pointsTo(f, _, _, _)
|
|
select locate(f.getLocation(), "abchlr"), f.toString()
|