Merge pull request #3058 from asger-semmle/js/may-receive-argument-fix

Approved by max-schaefer
This commit is contained in:
semmle-qlci
2020-03-13 11:49:49 +00:00
committed by GitHub

View File

@@ -697,14 +697,14 @@ abstract private class CallWithAnalyzedParameters extends FunctionWithAnalyzedPa
}
override predicate mayReceiveArgument(Parameter p) {
exists(DataFlow::InvokeNode invk, int argIdx |
invk = getAnInvocation() and
p = getParameter(argIdx)
|
exists(invk.getArgument(argIdx))
or
invk.asExpr().(InvokeExpr).isSpreadArgument([0 .. argIdx])
exists(int argIdx |
p = getParameter(argIdx) and
getAnInvocation().getNumArgument() > argIdx
)
or
// All parameters may receive an argument if invoked with a spread argument
p = getAParameter() and
getAnInvocation().asExpr().(InvokeExpr).isSpreadArgument(_)
}
}