File tree Expand file tree Collapse file tree 2 files changed +38
-0
lines changed
java/ql/test/library-tests/dataflow/taintgettersetter Expand file tree Collapse file tree 2 files changed +38
-0
lines changed Original file line number Diff line number Diff 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}
Original file line number Diff line number Diff line change 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(...) |
You can’t perform that action at this time.
0 commit comments