mirror of
https://github.com/github/codeql.git
synced 2026-04-29 10:45:15 +02:00
JS: Tweak evaluation of route handler params
This commit is contained in:
@@ -81,6 +81,7 @@ module ConnectExpressShared {
|
||||
*
|
||||
* `kind` is one of: "error", "request", "response", "next".
|
||||
*/
|
||||
pragma[inline]
|
||||
Parameter getRouteParameterHandlerParameter(Function routeHandler, string kind) {
|
||||
result =
|
||||
getRouteHandlerParameter(routeHandler, RouteHandlerSignature::requestResponseNextParameter(),
|
||||
@@ -92,6 +93,7 @@ module ConnectExpressShared {
|
||||
*
|
||||
* `kind` is one of: "error", "request", "response", "next".
|
||||
*/
|
||||
pragma[inline]
|
||||
Parameter getRouteHandlerParameter(Function routeHandler, string kind) {
|
||||
if routeHandler.getNumParameter() = 4
|
||||
then
|
||||
|
||||
@@ -219,12 +219,14 @@ module Firebase {
|
||||
*/
|
||||
private class RouteHandler extends Express::RouteHandler, HTTP::Servers::StandardRouteHandler,
|
||||
DataFlow::ValueNode {
|
||||
override Function astNode;
|
||||
|
||||
RouteHandler() { this = any(RouteSetup setup).getARouteHandler() }
|
||||
|
||||
override SimpleParameter getRouteHandlerParameter(string kind) {
|
||||
kind = "request" and result = this.(DataFlow::FunctionNode).getParameter(0).getParameter()
|
||||
kind = "request" and result = astNode.getParameter(0)
|
||||
or
|
||||
kind = "response" and result = this.(DataFlow::FunctionNode).getParameter(1).getParameter()
|
||||
kind = "response" and result = astNode.getParameter(1)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -370,6 +370,7 @@ module HTTP {
|
||||
/**
|
||||
* Gets a route handler that is defined by this setup.
|
||||
*/
|
||||
pragma[nomagic]
|
||||
abstract DataFlow::SourceNode getARouteHandler();
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user