Skip to content

Commit 33f6392

Browse files
committed
Java: Add some more taint-getter-setter tests.
1 parent 9c06c48 commit 33f6392

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

java/ql/test/library-tests/dataflow/taintgettersetter/A.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,38 @@ void foo(Box b1, Box b2) {
3434
Box b4 = Box.mk(taint());
3535
sink(b4.getS1());
3636
}
37+
38+
static class Box2 {
39+
String s;
40+
String getS() { return s; }
41+
void setS(String s) { this.s = s; }
42+
43+
Box2(String s) {
44+
setS(s + "1");
45+
}
46+
String getS1() { return getS() + "2"; }
47+
String getS2() { return step(getS() + "_") + "2"; }
48+
void setS1(String s) { setS("3" + s); }
49+
void setS2(String s) { setS("3" + step("_" + s)); }
50+
static Box2 mk(String s) {
51+
Box2 b = new Box2("");
52+
b.setS(step(s));
53+
return b;
54+
}
55+
}
56+
57+
void foo2(Box2 b1, Box2 b2) {
58+
b1.setS1(taint());
59+
sink(b1.getS1());
60+
61+
b2.setS2(taint());
62+
sink(b2.getS2());
63+
64+
String t3 = taint();
65+
Box2 b3 = new Box2(step(t3));
66+
sink(b3.s);
67+
68+
Box2 b4 = Box2.mk(taint());
69+
sink(b4.getS1());
70+
}
3771
}

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,7 @@
22
| A.java:27:14:27:20 | taint(...) | A.java:28:10:28:19 | getS2(...) |
33
| A.java:30:17:30:23 | taint(...) | A.java:32:10:32:13 | b3.s |
44
| A.java:34:21:34:27 | taint(...) | A.java:35:10:35:19 | getS1(...) |
5+
| A.java:58:14:58:20 | taint(...) | A.java:59:10:59:19 | getS1(...) |
6+
| A.java:61:14:61:20 | taint(...) | A.java:62:10:62:19 | getS2(...) |
7+
| A.java:64:17:64:23 | taint(...) | A.java:66:10:66:13 | b3.s |
8+
| A.java:68:23:68:29 | taint(...) | A.java:69:10:69:19 | getS1(...) |

0 commit comments

Comments
 (0)