Files
codeql/python/ql/test/library-tests/taint/example/Edges.ql
Rasmus Wriedt Larsen f602f3e1c7 Python: Use proper import for semmle.python.dataflow.TaintTracking
It was moved in 637677d515, but imports were not
updated.
2020-05-25 13:45:49 +02:00

40 lines
1.2 KiB
Plaintext

import python
import semmle.python.dataflow.TaintTracking
import semmle.python.dataflow.Implementation
import DilbertConfig
string shortString(TaintTrackingNode n) {
if n.getContext().isTop()
then
result =
n.getLocation().getStartLine() + ": " + n.getNode().toString() + n.getPath().extension() +
" = " + n.getTaintKind()
else
result =
n.getLocation().getStartLine() + ": " + n.getNode().toString() + n.getPath().extension() +
" = " + n.getTaintKind() + " (" + n.getContext().toString() + ")"
}
bindingset[s, len]
string ljust(string s, int len) {
result =
s +
" "
.prefix(len - s.length())
}
bindingset[s, len]
string format(string s, int len) {
exists(string label |
s = "" and label = "[dataflow]"
or
s != "" and label = s
|
result = ljust(label, len)
)
}
from TaintTrackingNode p, TaintTrackingNode s, string label
where any(DilbertConfig config).(TaintTrackingImplementation).flowStep(p, s, label)
select format(shortString(p), 50), format(label, 10), shortString(s)