Skip to content

Commit 0f870a4

Browse files
committed
JS: Use TCapturedVariableNode as starting point of callInputStep
1 parent 4d6da19 commit 0f870a4

File tree

3 files changed

+9
-9
lines changed

3 files changed

+9
-9
lines changed

javascript/ql/src/semmle/javascript/dataflow/Configuration.qll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -926,10 +926,10 @@ private predicate callInputStep(
926926
argumentPassing(invk, pred, f, succ)
927927
or
928928
isRelevant(pred, cfg) and
929-
exists(SsaDefinition prevDef, SsaDefinition def |
930-
pred = DataFlow::ssaDefinitionNode(prevDef) and
929+
exists(LocalVariable variable, SsaDefinition def |
930+
pred = DataFlow::capturedVariableNode(variable) and
931931
calls(invk, f) and
932-
captures(f, prevDef, def) and
932+
captures(f, variable, def) and
933933
succ = DataFlow::ssaDefinitionNode(def)
934934
)
935935
) and

javascript/ql/src/semmle/javascript/dataflow/TrackedNodes.qll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,10 +122,10 @@ private module NodeTracking {
122122
(
123123
argumentPassing(invk, pred, f, succ)
124124
or
125-
exists(SsaDefinition prevDef, SsaDefinition def |
126-
pred = DataFlow::ssaDefinitionNode(prevDef) and
125+
exists(LocalVariable variable, SsaDefinition def |
126+
pred = DataFlow::capturedVariableNode(variable) and
127127
calls(invk, f) and
128-
captures(f, prevDef, def) and
128+
captures(f, variable, def) and
129129
succ = DataFlow::ssaDefinitionNode(def)
130130
)
131131
)

javascript/ql/src/semmle/javascript/dataflow/internal/FlowSteps.qll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,11 @@ predicate localExceptionStep(DataFlow::Node pred, DataFlow::Node succ) {
7878
cached
7979
private module CachedSteps {
8080
/**
81-
* Holds if `f` captures the variable defined by `def` in `cap`.
81+
* Holds if `f` captures the given `variable` in `cap`.
8282
*/
8383
cached
84-
predicate captures(Function f, SsaExplicitDefinition def, SsaVariableCapture cap) {
85-
def.getSourceVariable() = cap.getSourceVariable() and
84+
predicate captures(Function f, LocalVariable variable, SsaVariableCapture cap) {
85+
variable = cap.getSourceVariable() and
8686
f = cap.getContainer()
8787
}
8888

0 commit comments

Comments
 (0)