Skip to content

Commit f232669

Browse files
committed
Ruby: support Proc.new alongside 'proc' and 'lambda'
1 parent 194fe85 commit f232669

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1333,7 +1333,12 @@ predicate lambdaCreation(Node creation, LambdaCallKind kind, DataFlowCallable c)
13331333
creation.asExpr() =
13341334
any(CfgNodes::ExprNodes::MethodCallCfgNode mc |
13351335
c.asCallable() = mc.getBlock().getExpr() and
1336-
mc.getExpr().getMethodName() = ["lambda", "proc"]
1336+
(
1337+
mc.getExpr().getMethodName() = ["lambda", "proc"]
1338+
or
1339+
mc.getExpr().getMethodName() = "new" and
1340+
mc.getReceiver().getExpr().(ConstantReadAccess).getAQualifiedName() = "Proc"
1341+
)
13371342
)
13381343
)
13391344
}
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11
failures
22
testFailures
3-
| explicit-proc.rb:10:7:10:78 | # $ reachableFromSource=Member[Foo].Method[bar].Argument[0].Parameter[0] | Missing result:reachableFromSource=Member[Foo].Method[bar].Argument[0].Parameter[0] |

0 commit comments

Comments
 (0)