File tree Expand file tree Collapse file tree 1 file changed +15
-10
lines changed
javascript/ql/src/semmle/javascript/frameworks Expand file tree Collapse file tree 1 file changed +15
-10
lines changed Original file line number Diff line number Diff line change @@ -194,22 +194,27 @@ module Hapi {
194194 */
195195 class RouteSetup extends MethodCallExpr , HTTP:: Servers:: StandardRouteSetup {
196196 ServerDefinition server ;
197- string methodName ;
197+ Expr handler ;
198198
199199 RouteSetup ( ) {
200200 server .flowsTo ( getReceiver ( ) ) and
201- methodName = getMethodName ( ) and
202- ( methodName = "route" or methodName = "ext" )
201+ (
202+ // server.route({ handler: fun })
203+ getMethodName ( ) = "route" and
204+ hasOptionArgument ( 0 , "handler" , handler )
205+ or
206+ // server.ext('/', fun)
207+ getMethodName ( ) = "ext" and
208+ handler = getArgument ( 1 )
209+ )
203210 }
204211
205212 override DataFlow:: SourceNode getARouteHandler ( ) {
206- // server.route({ handler: fun })
207- methodName = "route" and
208- result .flowsToExpr ( any ( Expr e | hasOptionArgument ( 0 , "handler" , e ) ) )
209- or
210- // server.ext('/', fun)
211- methodName = "ext" and
212- result .flowsToExpr ( getArgument ( 1 ) )
213+ result .( DataFlow:: SourceNode ) .flowsTo ( handler .flow ( ) )
214+ }
215+
216+ Expr getRouteHandlerExpr ( ) {
217+ result = handler
213218 }
214219
215220 override Expr getServer ( ) {
You can’t perform that action at this time.
0 commit comments