Python: Minor rewrite

Co-authored-by: yoff <lerchedahl@gmail.com>
This commit is contained in:
Rasmus Wriedt Larsen
2020-12-15 12:02:56 +01:00
committed by GitHub
parent 272feedb69
commit 050e720770

View File

@@ -1258,15 +1258,12 @@ private module Stdlib {
private class AdditionalTaintStep extends TaintTracking::AdditionalTaintStep {
override predicate step(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) {
// Methods
exists(DataFlow::AttrRead read | read = nodeTo and read.getObject() = nodeFrom |
nodeFrom = instance() and
nodeTo in [getvalueRef(), getfirstRef(), getlistRef()]
)
nodeFrom = nodeTo.(DataFlow::AttrRead).getObject() and
nodeFrom = instance() and
nodeTo in [getvalueRef(), getfirstRef(), getlistRef()]
or
exists(CallNode call |
nodeTo.asCfgNode() = call and
call.getFunction() = nodeFrom.asCfgNode()
|
nodeFrom.asCfgNode() = nodeTo.asCfgNode().(CallNode).getFunction() and
(
nodeFrom = getvalueRef() and nodeTo = getvalueResult()
or
nodeFrom = getfirstRef() and nodeTo = getfirstResult()