Skip to content

Commit 22e9ae2

Browse files
committed
Java: Add some source/sink examples where lifting is applied.
1 parent f7ce4f3 commit 22e9ae2

File tree

4 files changed

+58
-0
lines changed

4 files changed

+58
-0
lines changed

java/ql/test/utils/modelgenerator/dataflow/CaptureSinkModels.ext.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ extensions:
55
extensible: sinkModel
66
data:
77
- [ "p", "Sinks", False, "sink", "(Object)", "", "Argument[0]", "test-sink", "manual" ]
8+
- [ "p", "Sinks", False, "sink2", "(Object)", "", "Argument[0]", "test-sink2", "manual" ]
89
- [ "p", "Sinks", False, "manualSinkAlreadyDefined", "(Object)", "", "Argument[0]", "test-sink", "manual" ]
910

1011
- addsTo:

java/ql/test/utils/modelgenerator/dataflow/CaptureSourceModels.ext.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ extensions:
55
extensible: sourceModel
66
data:
77
- [ "p", "Sources", False, "source", "()", "", "ReturnValue", "test-source", "manual" ]
8+
- [ "p", "Sources", False, "source2", "()", "", "ReturnValue", "test-source2", "manual" ]
89
- [ "p", "Sources", False, "manualSourceAlreadyDefined", "()", "", "ReturnValue", "test-source", "manual" ]
910

1011
- addsTo:

java/ql/test/utils/modelgenerator/dataflow/p/Sinks.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ public class Sinks {
1717
// neutral=p;Sinks;sink;(Object);summary;df-generated
1818
public void sink(Object o) {}
1919

20+
// Defined as a sink in the model file next to the test.
21+
// neutral=p;Sinks;sink2;(Object);summary;df-generated
22+
public void sink2(Object o) {}
23+
2024
// sink=p;Sinks;true;copyFileToDirectory;(Path,Path,CopyOption[]);;Argument[0];path-injection;df-generated
2125
// sink=p;Sinks;true;copyFileToDirectory;(Path,Path,CopyOption[]);;Argument[1];path-injection;df-generated
2226
// neutral=p;Sinks;copyFileToDirectory;(Path,Path,CopyOption[]);summary;df-generated
@@ -77,4 +81,27 @@ public void wrapSinkSimpleType(String s) {
7781
public void manualSinkAlreadyDefined(Object o) {
7882
sink(o);
7983
}
84+
85+
public abstract class DataWriter {
86+
// neutral=p;Sinks$DataWriter;write;(String);summary;df-generated
87+
public abstract void write(String s);
88+
}
89+
90+
public class DataWriterKind1 extends DataWriter {
91+
// sink=p;Sinks$DataWriter;true;write;(String);;Argument[0];test-sink;df-generated
92+
// neutral=p;Sinks$DataWriterKind1;write;(String);summary;df-generated
93+
@Override
94+
public void write(String s) {
95+
sink(s);
96+
}
97+
}
98+
99+
public class DataWriterKind2 extends DataWriter {
100+
// sink=p;Sinks$DataWriter;true;write;(String);;Argument[0];test-sink2;df-generated
101+
// neutral=p;Sinks$DataWriterKind2;write;(String);summary;df-generated
102+
@Override
103+
public void write(String s) {
104+
sink2(s);
105+
}
106+
}
80107
}

java/ql/test/utils/modelgenerator/dataflow/p/Sources.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ public String source() {
1414
return "";
1515
}
1616

17+
// Defined as a source in the model file next to the test.
18+
// neutral=p;Sources;source2;();summary;df-generated
19+
public String source2() {
20+
return "";
21+
}
22+
1723
// source=p;Sources;true;readUrl;(URL);;ReturnValue;remote;df-generated
1824
// sink=p;Sources;true;readUrl;(URL);;Argument[0];request-forgery;df-generated
1925
// neutral=p;Sources;readUrl;(URL);summary;df-generated
@@ -79,4 +85,27 @@ public String manualNeutralSource() {
7985
public String manualSourceAlreadyDefined() {
8086
return source();
8187
}
88+
89+
public abstract class DataReader {
90+
// neutral=p;Sources$DataReader;read;();summary;df-generated
91+
public abstract String read();
92+
}
93+
94+
public class DataReaderKind1 extends DataReader {
95+
// source=p;Sources$DataReader;true;read;();;ReturnValue;test-source;df-generated
96+
// neutral=p;Sources$DataReaderKind1;read;();summary;df-generated
97+
@Override
98+
public String read() {
99+
return source();
100+
}
101+
}
102+
103+
public class DataReaderKind2 extends DataReader {
104+
// source=p;Sources$DataReader;true;read;();;ReturnValue;test-source2;df-generated
105+
// neutral=p;Sources$DataReaderKind2;read;();summary;df-generated
106+
@Override
107+
public String read() {
108+
return source2();
109+
}
110+
}
82111
}

0 commit comments

Comments
 (0)