Skip to content

Commit a74b203

Browse files
committed
JS: Add test with implicit array stringification
1 parent d87534c commit a74b203

File tree

1 file changed

+23
-0
lines changed
  • javascript/ql/test/library-tests/TripleDot

1 file changed

+23
-0
lines changed

javascript/ql/test/library-tests/TripleDot/arrays.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,26 @@ function shiftTaint() {
2020
sink(array.shift()); // $ hasTaintFlow=shift.directly-tainted
2121
sink(array.shift()); // $ hasTaintFlow=shift.directly-tainted
2222
}
23+
24+
function implicitToString() {
25+
const array = [source('implicitToString.1')];
26+
array.push(source('implicitToString.2'))
27+
28+
sink(array + "foo"); // $ MISSING: hasTaintFlow=implicitToString.1 hasTaintFlow=implicitToString.2
29+
sink("foo" + array); // $ MISSING: hasTaintFlow=implicitToString.1 hasTaintFlow=implicitToString.2
30+
sink("" + array); // $ MISSING: hasTaintFlow=implicitToString.1 hasTaintFlow=implicitToString.2
31+
sink(array + 1); // $ MISSING: hasTaintFlow=implicitToString.1 hasTaintFlow=implicitToString.2
32+
sink(1 + array); // $ MISSING: hasTaintFlow=implicitToString.1 hasTaintFlow=implicitToString.2
33+
sink(unknown() + array); // $ MISSING: hasTaintFlow=implicitToString.1 hasTaintFlow=implicitToString.2
34+
sink(array + unknown()); // $ MISSING: hasTaintFlow=implicitToString.1 hasTaintFlow=implicitToString.2
35+
36+
sink(`${array}`); // $ MISSING: hasTaintFlow=implicitToString.1 hasTaintFlow=implicitToString.2
37+
sink(`${array} foo`); // $ MISSING: hasTaintFlow=implicitToString.1 hasTaintFlow=implicitToString.2
38+
39+
sink(String(array)); // $ MISSING: hasTaintFlow=implicitToString.1 hasTaintFlow=implicitToString.2
40+
41+
sink(array.toString()); // $ hasTaintFlow=implicitToString.1 hasTaintFlow=implicitToString.2
42+
sink(array.toString("utf8")); // $ hasTaintFlow=implicitToString.1 hasTaintFlow=implicitToString.2
43+
44+
sink(Array.prototype.toString.call(array)); // $ MISSING: hasTaintFlow=implicitToString.1 hasTaintFlow=implicitToString.2
45+
}

0 commit comments

Comments
 (0)