Skip to content

Commit 423da55

Browse files
committed
Ruby: use asCallable() in Twirp model
1 parent dd86843 commit 423da55

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

ruby/ql/lib/codeql/ruby/frameworks/Twirp.qll

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,17 @@ module Twirp {
2121
this = API::getTopLevelMember("Twirp").getMember("Service").getAnInstantiation()
2222
}
2323

24-
private DataFlow::ClassNode getAHandlerClass() {
25-
result.getAnImmediateReference().getAMethodCall("new").flowsTo(this.getArgument(0))
26-
}
27-
2824
/**
2925
* Gets a handler's method.
3026
*/
31-
Ast::Method getAHandlerMethod() {
32-
result = this.getAHandlerClass().getAnAncestor().getAnOwnInstanceMethod().asCallableAstNode()
27+
DataFlow::MethodNode getAHandlerMethodNode() {
28+
result = this.getArgument(0).backtrack().getMethod(_).asCallable()
3329
}
30+
31+
/**
32+
* Gets a handler's method as an AST node.
33+
*/
34+
Ast::Method getAHandlerMethod() { result = this.getAHandlerMethodNode().asCallableAstNode() }
3435
}
3536

3637
/**
@@ -52,7 +53,7 @@ module Twirp {
5253
DataFlow::ParameterNode
5354
{
5455
UnmarshaledParameter() {
55-
exists(ServiceInstantiation i | i.getAHandlerMethod().getParameter(0) = this.asParameter())
56+
this = any(ServiceInstantiation i).getAHandlerMethodNode().getParameter(0)
5657
}
5758

5859
override string getSourceType() { result = "Twirp Unmarhaled Parameter" }

0 commit comments

Comments
 (0)