Skip to content

Commit 0650c01

Browse files
committed
Add models for StringJoiner constructor
1 parent d54c444 commit 0650c01

File tree

2 files changed

+38
-7
lines changed

2 files changed

+38
-7
lines changed

java/ql/test/library-tests/dataflow/taint/StringJoinerTests.java

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,34 @@ Object taint() {
99
void sink(Object o) {}
1010

1111
public void test() throws Exception {
12-
12+
{
13+
// "java.util;StringJoiner;true;StringJoiner;(CharSequence);;Argument[0];Argument[-1];taint;manual"
14+
StringJoiner out = null;
15+
CharSequence in = (CharSequence) taint();
16+
out = new StringJoiner(in);
17+
sink(out);
18+
}
19+
// "java.util;StringJoiner;true;StringJoiner;(CharSequence,CharSequence,CharSequence);;Argument[0];Argument[-1];taint;manual"
20+
{
21+
StringJoiner out = null;
22+
CharSequence in = (CharSequence) taint();
23+
out = new StringJoiner(in, null, null);
24+
sink(out);
25+
}
26+
// "java.util;StringJoiner;true;StringJoiner;(CharSequence,CharSequence,CharSequence);;Argument[1];Argument[-1];taint;manual"
27+
{
28+
StringJoiner out = null;
29+
CharSequence in = (CharSequence) taint();
30+
out = new StringJoiner(null, in, null);
31+
sink(out);
32+
}
33+
// "java.util;StringJoiner;true;StringJoiner;(CharSequence,CharSequence,CharSequence);;Argument[2];Argument[-1];taint;manual"
34+
{
35+
StringJoiner out = null;
36+
CharSequence in = (CharSequence) taint();
37+
out = new StringJoiner(null, null, in);
38+
sink(out);
39+
}
1340
{
1441
// "java.util;StringJoiner;true;add;;;Argument[-1];ReturnValue;value;manual"
1542
StringJoiner out = null;

java/ql/test/library-tests/dataflow/taint/test.expected

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,16 @@
7171
| StringBuilderTests.java:70:15:70:21 | taint(...) | StringBuilderTests.java:73:10:73:26 | new String(...) |
7272
| StringBuilderTests.java:79:15:79:21 | taint(...) | StringBuilderTests.java:80:10:80:40 | toString(...) |
7373
| StringBuilderTests.java:86:15:86:21 | taint(...) | StringBuilderTests.java:87:10:87:27 | substring(...) |
74-
| StringJoinerTests.java:16:37:16:43 | taint(...) | StringJoinerTests.java:18:9:18:11 | out |
75-
| StringJoinerTests.java:23:37:23:43 | taint(...) | StringJoinerTests.java:25:9:25:11 | out |
76-
| StringJoinerTests.java:30:37:30:43 | taint(...) | StringJoinerTests.java:32:9:32:11 | out |
77-
| StringJoinerTests.java:37:37:37:43 | taint(...) | StringJoinerTests.java:39:9:39:11 | out |
78-
| StringJoinerTests.java:44:37:44:43 | taint(...) | StringJoinerTests.java:46:9:46:11 | out |
79-
| StringJoinerTests.java:51:37:51:43 | taint(...) | StringJoinerTests.java:53:9:53:11 | out |
74+
| StringJoinerTests.java:15:37:15:43 | taint(...) | StringJoinerTests.java:17:9:17:11 | out |
75+
| StringJoinerTests.java:22:37:22:43 | taint(...) | StringJoinerTests.java:24:9:24:11 | out |
76+
| StringJoinerTests.java:29:37:29:43 | taint(...) | StringJoinerTests.java:31:9:31:11 | out |
77+
| StringJoinerTests.java:36:37:36:43 | taint(...) | StringJoinerTests.java:38:9:38:11 | out |
78+
| StringJoinerTests.java:43:37:43:43 | taint(...) | StringJoinerTests.java:45:9:45:11 | out |
79+
| StringJoinerTests.java:50:37:50:43 | taint(...) | StringJoinerTests.java:52:9:52:11 | out |
80+
| StringJoinerTests.java:57:37:57:43 | taint(...) | StringJoinerTests.java:59:9:59:11 | out |
81+
| StringJoinerTests.java:64:37:64:43 | taint(...) | StringJoinerTests.java:66:9:66:11 | out |
82+
| StringJoinerTests.java:71:37:71:43 | taint(...) | StringJoinerTests.java:73:9:73:11 | out |
83+
| StringJoinerTests.java:78:37:78:43 | taint(...) | StringJoinerTests.java:80:9:80:11 | out |
8084
| Varargs.java:7:8:7:14 | taint(...) | Varargs.java:14:10:14:10 | s |
8185
| Varargs.java:8:8:8:14 | taint(...) | Varargs.java:19:10:19:10 | s |
8286
| Varargs.java:8:17:8:23 | taint(...) | Varargs.java:19:10:19:10 | s |

0 commit comments

Comments
 (0)