mirror of
https://github.com/github/codeql.git
synced 2026-05-14 11:19:27 +02:00
C#: Fix perf.
This commit is contained in:
@@ -133,12 +133,14 @@ AssignableDefinitionNode assignableDefinitionNode(AssignableDefinition def) {
|
||||
|
||||
predicate localFlowStep = localFlowStepImpl/2;
|
||||
|
||||
private predicate localFlowStepPlus(Node source, Node sink) = fastTC(localFlowStep/2)(source, sink)
|
||||
|
||||
/**
|
||||
* Holds if data flows from `source` to `sink` in zero or more local
|
||||
* (intra-procedural) steps.
|
||||
*/
|
||||
pragma[inline]
|
||||
predicate localFlow(Node source, Node sink) { localFlowStep*(source, sink) }
|
||||
predicate localFlow(Node source, Node sink) { localFlowStepPlus(source, sink) or source = sink }
|
||||
|
||||
/**
|
||||
* Holds if data can flow from `e1` to `e2` in zero or more
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
private import csharp
|
||||
private import TaintTrackingPrivate
|
||||
|
||||
private predicate localTaintStepPlus(DataFlow::Node source, DataFlow::Node sink) =
|
||||
fastTC(localTaintStep/2)(source, sink)
|
||||
|
||||
/**
|
||||
* Holds if taint propagates from `source` to `sink` in zero or more local
|
||||
* (intra-procedural) steps.
|
||||
*/
|
||||
pragma[inline]
|
||||
predicate localTaint(DataFlow::Node source, DataFlow::Node sink) { localTaintStep*(source, sink) }
|
||||
predicate localTaint(DataFlow::Node source, DataFlow::Node sink) {
|
||||
localTaintStepPlus(source, sink) or source = sink
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if taint can flow from `e1` to `e2` in zero or more
|
||||
|
||||
Reference in New Issue
Block a user