Thanks to visit codestin.com Credit goes to github.com
We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
multipleArgumentCallExclude
1 parent 2ec1822 commit f9d7becCopy full SHA for f9d7bec
1 file changed
python/ql/consistency-queries/DataFlowConsistency.ql
@@ -50,7 +50,16 @@ private module Input implements InputSig<PythonDataFlow> {
50
}
51
52
predicate multipleArgumentCallExclude(ArgumentNode arg, DataFlowCall call) {
53
- isArgumentNode(arg, call, _)
+ // since we can have multiple DataFlowCall for a CallNode (for example if can
54
+ // resolve to multiple functions), but we only make _one_ ArgumentNode for each
55
+ // argument in the CallNode, we end up violating this consistency check in those
56
+ // cases. (see `getCallArg` in DataFlowDispatch.qll)
57
+ exists(DataFlowCall other, CallNode cfgCall | other != call |
58
+ call.getNode() = cfgCall and
59
+ other.getNode() = cfgCall and
60
+ isArgumentNode(arg, call, _) and
61
+ isArgumentNode(arg, other, _)
62
+ )
63
64
65
0 commit comments