Files
2023-12-08 16:56:54 +01:00

43 lines
1.1 KiB
Plaintext

import javascript
import semmle.javascript.dependencies.SemVer
class SampleVersionSink extends DataFlow::Node {
SampleVersionSink() {
exists(
string dependencyName, Dependency dep, DependencySemVer vDep, string vFrom, string vTo,
string functionName, int argNumber
|
dependencyName = "a" and
vFrom = "0.1.0" and
vTo = "1.1.0" and
functionName = "m1" and
argNumber = 0
or
dependencyName = "b" and
vFrom = "1.1.0" and
vTo = "2.1.0" and
functionName = "m1" and
argNumber = 0
or
dependencyName = "c" and
vFrom = "0.1.0" and
vTo = "1.1.0" and
functionName = "m1" and
argNumber = 1
or
dependencyName = "d" and
vFrom = "0.1.0" and
vTo = "1.0.0" and
functionName = "m1" and
argNumber = 0
|
this =
DataFlow::dependencyModuleImport(dep).getAMemberCall(functionName).getArgument(argNumber) and
dep.info(dependencyName, vDep) and
vDep.maybeBetween(vFrom, vTo)
)
}
}
select any(SampleVersionSink s)