Skip to content

Commit 32f020e

Browse files
committed
JS: Port tutorial query1
1 parent 66d6bda commit 32f020e

File tree

1 file changed

+7
-7
lines changed
  • javascript/ql/test/tutorials/Analyzing data flow in JavaScript/Global data flow

1 file changed

+7
-7
lines changed
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
import javascript
22

3-
class CommandLineFileNameConfiguration extends TaintTracking::Configuration {
4-
CommandLineFileNameConfiguration() { this = "CommandLineFileNameConfiguration" }
5-
6-
override predicate isSource(DataFlow::Node source) {
3+
module CommandLineFileNameConfig implements DataFlow::ConfigSig {
4+
predicate isSource(DataFlow::Node source) {
75
DataFlow::globalVarRef("process").getAPropertyRead("argv").getAPropertyRead() = source
86
}
97

10-
override predicate isSink(DataFlow::Node sink) {
8+
predicate isSink(DataFlow::Node sink) {
119
DataFlow::moduleMember("fs", "readFile").getACall().getArgument(0) = sink
1210
}
1311
}
1412

15-
from CommandLineFileNameConfiguration cfg, DataFlow::Node source, DataFlow::Node sink
16-
where cfg.hasFlow(source, sink)
13+
module CommandLineFileNameFlow = TaintTracking::Global<CommandLineFileNameConfig>;
14+
15+
from DataFlow::Node source, DataFlow::Node sink
16+
where CommandLineFileNameFlow::flow(source, sink)
1717
select source, sink

0 commit comments

Comments
 (0)