Skip to content

Commit b486a4d

Browse files
authored
Merge pull request github#13255 from hvitved/ruby/ssa-param-capture-input
Ruby: Include underlying SSA parameter definition in `localFlowSsaParamCaptureInput`
2 parents eea972b + eaa84cb commit b486a4d

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -144,12 +144,13 @@ module LocalFlow {
144144
* This is intended to recover from flow not currently recognised by ordinary capture flow.
145145
*/
146146
predicate localFlowSsaParamCaptureInput(Node nodeFrom, Node nodeTo) {
147-
exists(Ssa::CapturedEntryDefinition def |
148-
nodeFrom.asParameter().(NamedParameter).getVariable() = def.getSourceVariable()
149-
or
150-
nodeFrom.(SelfParameterNode).getSelfVariable() = def.getSourceVariable()
151-
|
147+
exists(Ssa::CapturedEntryDefinition def, ParameterNodeImpl p |
148+
(nodeFrom = p or LocalFlow::localFlowSsaParamInput(p, nodeFrom)) and
152149
nodeTo.(SsaDefinitionExtNode).getDefinitionExt() = def
150+
|
151+
p.getParameter().(NamedParameter).getVariable() = def.getSourceVariable()
152+
or
153+
p.(SelfParameterNode).getSelfVariable() = def.getSourceVariable()
153154
)
154155
}
155156

0 commit comments

Comments
 (0)