Skip to content

Commit 8befb03

Browse files
committed
JS: Add test case with spurious call/return flow
1 parent 38f763d commit 8befb03

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

javascript/ql/test/library-tests/TaintTracking/BasicTaintTracking.expected

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ typeInferenceMismatch
3434
| callbacks.js:51:18:51:25 | source() | callbacks.js:30:29:30:29 | y |
3535
| callbacks.js:53:23:53:30 | source() | callbacks.js:58:10:58:10 | x |
3636
| capture-flow.js:9:11:9:18 | source() | capture-flow.js:14:10:14:16 | outer() |
37+
| capture-flow.js:31:14:31:21 | source() | capture-flow.js:30:6:30:20 | confuse('safe') |
38+
| capture-flow.js:31:14:31:21 | source() | capture-flow.js:31:6:31:22 | confuse(source()) |
3739
| captured-sanitizer.js:25:3:25:10 | source() | captured-sanitizer.js:15:10:15:10 | x |
3840
| closure.js:6:15:6:22 | source() | closure.js:8:8:8:31 | string. ... (taint) |
3941
| closure.js:6:15:6:22 | source() | closure.js:9:8:9:25 | string.trim(taint) |

javascript/ql/test/library-tests/TaintTracking/DataFlowTracking.expected

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
| callbacks.js:51:18:51:25 | source() | callbacks.js:30:29:30:29 | y |
2525
| callbacks.js:53:23:53:30 | source() | callbacks.js:58:10:58:10 | x |
2626
| capture-flow.js:9:11:9:18 | source() | capture-flow.js:14:10:14:16 | outer() |
27+
| capture-flow.js:31:14:31:21 | source() | capture-flow.js:30:6:30:20 | confuse('safe') |
28+
| capture-flow.js:31:14:31:21 | source() | capture-flow.js:31:6:31:22 | confuse(source()) |
2729
| captured-sanitizer.js:25:3:25:10 | source() | captured-sanitizer.js:15:10:15:10 | x |
2830
| constructor-calls.js:4:18:4:25 | source() | constructor-calls.js:18:8:18:14 | c.taint |
2931
| constructor-calls.js:4:18:4:25 | source() | constructor-calls.js:22:8:22:19 | c_safe.taint |

javascript/ql/test/library-tests/TaintTracking/capture-flow.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,15 @@ function outerMost() {
1717
}
1818

1919
sink(outerMost()); // NOT OK - but missed
20+
21+
function confuse(x) {
22+
let captured;
23+
function f() {
24+
captured = x;
25+
}
26+
f();
27+
return captured;
28+
}
29+
30+
sink(confuse('safe')); // OK - but incorrectly flagged
31+
sink(confuse(source())); // NOT OK

0 commit comments

Comments
 (0)