Skip to content

Commit 0e9c237

Browse files
committed
JS: Use a field in RouterHandlerParameter
1 parent 53b3581 commit 0e9c237

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

javascript/ql/lib/semmle/javascript/Routing.qll

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -818,7 +818,9 @@ module Routing {
818818
* A parameter to a route handler function.
819819
*/
820820
class RouteHandlerParameter extends DataFlow::ParameterNode {
821-
RouteHandlerParameter() { this = any(RouteHandler h).getFunction().getAParameter() }
821+
private RouteHandler handler;
822+
823+
RouteHandlerParameter() { this = handler.getFunction().getAParameter() }
822824

823825
/** Gets a data flow node referring to this route handler parameter. */
824826
private DataFlow::SourceNode ref(DataFlow::TypeTracker t) {
@@ -834,15 +836,15 @@ module Routing {
834836
/**
835837
* Gets the corresponding route handler, that is, the function on which this is a parameter.
836838
*/
837-
final RouteHandler getRouteHandler() { result.getFunction().getAParameter() = this }
839+
final RouteHandler getRouteHandler() { result = handler }
838840

839841
/**
840842
* Gets a node that is stored in the given access path on this route handler parameter, either
841843
* during execution of this router handler, or in one of the preceding ones.
842844
*/
843845
pragma[inline]
844846
DataFlow::Node getValueFromAccessPath(string path) {
845-
exists(RouteHandler handler, int i, Node predecessor |
847+
exists(int i, Node predecessor |
846848
pragma[only_bind_out](this) = handler.getFunction().getParameter(i) and
847849
result = getAnAccessPathRhs(predecessor, i, path) and
848850
(handler.isGuardedByNode(predecessor) or predecessor = handler)

0 commit comments

Comments
 (0)