mirror of
https://github.com/github/codeql.git
synced 2026-05-01 19:55:15 +02:00
Merge branch 'github:main' into java-mad-test
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -9,7 +9,7 @@ class TestRemoteFlowSource extends RemoteFlowSource {
|
||||
}
|
||||
|
||||
module TaintFlowConfig implements DataFlow::ConfigSig {
|
||||
predicate isSource(DataFlow::Node n) { n instanceof ThreatModelFlowSource }
|
||||
predicate isSource(DataFlow::Node n) { n instanceof ActiveThreatModelSource }
|
||||
|
||||
predicate isSink(DataFlow::Node n) {
|
||||
exists(MethodCall ma | ma.getMethod().hasName("sink") | n.asExpr() = ma.getAnArgument())
|
||||
|
||||
@@ -54,6 +54,8 @@ public class C {
|
||||
// The summary for the parameter is ignored, because it is generated and
|
||||
// because there is a manual neutral summary model for this callable.
|
||||
lib.apiStepArgQualGeneratedIgnored(arg1);
|
||||
|
||||
lib.getValue();
|
||||
}
|
||||
|
||||
void fooPossibleLibraryDispatch(Library lib) {
|
||||
|
||||
@@ -11,4 +11,5 @@ invalidModelRow
|
||||
| C.java:44:32:44:35 | arg1 | C.java:44:5:44:36 | apiStepArgResGenerated(...) |
|
||||
| C.java:50:45:50:48 | arg2 | C.java:50:5:50:49 | apiStepArgResGeneratedIgnored(...) |
|
||||
| C.java:52:33:52:36 | arg1 | C.java:52:5:52:7 | lib [post update] |
|
||||
| C.java:62:12:62:15 | arg1 | C.java:62:5:62:16 | id(...) |
|
||||
| C.java:58:5:58:7 | lib | C.java:58:5:58:18 | getValue(...) |
|
||||
| C.java:64:12:64:15 | arg1 | C.java:64:5:64:16 | id(...) |
|
||||
|
||||
@@ -16,6 +16,7 @@ extensions:
|
||||
- ["my.qltest.external", "Library", False, "apiStepArgQualGenerated", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"]
|
||||
- ["my.qltest.external", "Library", False, "apiStepArgQualGeneratedIgnored", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"]
|
||||
- ["my.qltest.external", "Library", False, "id", "(Object)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"]
|
||||
- ["my.qltest.external", "Library", False, "getValue", "()", "", "Argument[this]", "ReturnValue", "taint", "dfc-generated"]
|
||||
- addsTo:
|
||||
pack: codeql/java-all
|
||||
extensible: neutralModel
|
||||
|
||||
@@ -20,4 +20,8 @@ public class Library {
|
||||
public Object id(Object x) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Object getValue() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,48 +1,38 @@
|
||||
models
|
||||
| 1 | Summary: java.util; Formatter; false; Formatter; (Appendable); ; Argument[0]; Argument[this]; taint; df-generated |
|
||||
| 2 | Summary: java.util; Formatter; false; format; (String,Object[]); ; Argument[1].ArrayElement; ReturnValue; taint; df-generated |
|
||||
| 3 | Summary: java.util; Formatter; false; format; (String,Object[]); ; Argument[this]; ReturnValue; taint; df-generated |
|
||||
| 4 | Summary: java.lang; AbstractStringBuilder; true; append; ; ; Argument[this]; ReturnValue; value; manual |
|
||||
| 5 | Summary: java.lang; AbstractStringBuilder; true; append; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 6 | Summary: java.lang; CharSequence; true; toString; ; ; Argument[this]; ReturnValue; taint; manual |
|
||||
| 7 | Summary: java.lang; String; false; format; (String,Object[]); ; Argument[1].ArrayElement; ReturnValue; taint; manual |
|
||||
| 8 | Summary: java.lang; String; false; formatted; (Object[]); ; Argument[this]; ReturnValue; taint; manual |
|
||||
| 9 | Summary: java.lang; String; false; formatted; (Object[]); ; Argument[0].ArrayElement; ReturnValue; taint; manual |
|
||||
| 1 | Summary: java.lang; AbstractStringBuilder; true; append; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 2 | Summary: java.lang; AbstractStringBuilder; true; append; ; ; Argument[this]; ReturnValue; value; manual |
|
||||
| 3 | Summary: java.lang; CharSequence; true; toString; ; ; Argument[this]; ReturnValue; taint; manual |
|
||||
| 4 | Summary: java.lang; String; false; format; (String,Object[]); ; Argument[1].ArrayElement; ReturnValue; taint; manual |
|
||||
| 5 | Summary: java.lang; String; false; formatted; (Object[]); ; Argument[0].ArrayElement; ReturnValue; taint; manual |
|
||||
| 6 | Summary: java.lang; String; false; formatted; (Object[]); ; Argument[this]; ReturnValue; taint; manual |
|
||||
| 7 | Summary: java.util; Formatter; false; format; (String,Object[]); ; Argument[this]; ReturnValue; value; dfc-generated |
|
||||
edges
|
||||
| A.java:12:22:12:29 | source(...) : String | A.java:15:14:15:16 | bad : String | provenance | |
|
||||
| A.java:12:22:12:29 | source(...) : String | A.java:16:34:16:36 | bad : String | provenance | |
|
||||
| A.java:12:22:12:29 | source(...) : String | A.java:17:36:17:38 | bad : String | provenance | |
|
||||
| A.java:12:22:12:29 | source(...) : String | A.java:19:107:19:109 | bad : String | provenance | |
|
||||
| A.java:15:14:15:16 | bad : String | A.java:15:14:15:32 | formatted(...) | provenance | MaD:8 |
|
||||
| A.java:16:14:16:48 | new ..[] { .. } : Object[] [[]] : String | A.java:16:14:16:48 | formatted(...) | provenance | MaD:9 |
|
||||
| A.java:15:14:15:16 | bad : String | A.java:15:14:15:32 | formatted(...) | provenance | MaD:6 |
|
||||
| A.java:16:14:16:48 | new ..[] { .. } : Object[] [[]] : String | A.java:16:14:16:48 | formatted(...) | provenance | MaD:5 |
|
||||
| A.java:16:34:16:36 | bad : String | A.java:16:14:16:48 | new ..[] { .. } : Object[] [[]] : String | provenance | |
|
||||
| A.java:17:14:17:45 | new ..[] { .. } : Object[] [[]] : String | A.java:17:14:17:45 | format(...) | provenance | MaD:7 |
|
||||
| A.java:17:14:17:45 | new ..[] { .. } : Object[] [[]] : String | A.java:17:14:17:45 | format(...) | provenance | MaD:4 |
|
||||
| A.java:17:36:17:38 | bad : String | A.java:17:14:17:45 | new ..[] { .. } : Object[] [[]] : String | provenance | |
|
||||
| A.java:19:14:19:110 | new ..[] { .. } : Object[] [[]] : String | A.java:19:14:19:110 | format(...) | provenance | MaD:7 |
|
||||
| A.java:19:14:19:110 | new ..[] { .. } : Object[] [[]] : String | A.java:19:14:19:110 | format(...) | provenance | MaD:4 |
|
||||
| A.java:19:107:19:109 | bad : String | A.java:19:14:19:110 | new ..[] { .. } : Object[] [[]] : String | provenance | |
|
||||
| A.java:23:22:23:29 | source(...) : String | A.java:27:14:27:32 | format(...) | provenance | TaintPreservingCallable |
|
||||
| A.java:23:22:23:29 | source(...) : String | A.java:27:29:27:31 | bad : String | provenance | |
|
||||
| A.java:23:22:23:29 | source(...) : String | A.java:28:14:28:25 | toString(...) | provenance | TaintPreservingCallable |
|
||||
| A.java:27:14:27:32 | new ..[] { .. } : Object[] [[]] : String | A.java:27:14:27:32 | format(...) | provenance | MaD:2 |
|
||||
| A.java:27:29:27:31 | bad : String | A.java:27:14:27:32 | new ..[] { .. } : Object[] [[]] : String | provenance | |
|
||||
| A.java:32:22:32:29 | source(...) : String | A.java:36:14:36:15 | sb : StringBuilder | provenance | formatStep |
|
||||
| A.java:32:22:32:29 | source(...) : String | A.java:37:14:37:32 | format(...) | provenance | TaintPreservingCallable |
|
||||
| A.java:32:22:32:29 | source(...) : String | A.java:37:29:37:31 | bad : String | provenance | |
|
||||
| A.java:32:22:32:29 | source(...) : String | A.java:38:14:38:15 | sb : StringBuilder | provenance | formatStep |
|
||||
| A.java:36:14:36:15 | sb : StringBuilder | A.java:36:14:36:26 | toString(...) | provenance | MaD:6 |
|
||||
| A.java:37:14:37:32 | new ..[] { .. } : Object[] [[]] : String | A.java:37:14:37:32 | format(...) | provenance | MaD:2 |
|
||||
| A.java:37:29:37:31 | bad : String | A.java:37:14:37:32 | new ..[] { .. } : Object[] [[]] : String | provenance | |
|
||||
| A.java:38:14:38:15 | sb : StringBuilder | A.java:38:14:38:26 | toString(...) | provenance | MaD:6 |
|
||||
| A.java:36:14:36:15 | sb : StringBuilder | A.java:36:14:36:26 | toString(...) | provenance | MaD:3 |
|
||||
| A.java:38:14:38:15 | sb : StringBuilder | A.java:38:14:38:26 | toString(...) | provenance | MaD:3 |
|
||||
| A.java:42:22:42:29 | source(...) : String | A.java:45:24:45:26 | bad : String | provenance | |
|
||||
| A.java:45:14:45:15 | sb [post update] : StringBuilder | A.java:47:14:47:30 | new Formatter(...) : Formatter | provenance | TaintPreservingCallable |
|
||||
| A.java:45:14:45:15 | sb [post update] : StringBuilder | A.java:47:14:47:54 | toString(...) | provenance | TaintPreservingCallable |
|
||||
| A.java:45:14:45:15 | sb [post update] : StringBuilder | A.java:47:28:47:29 | sb : StringBuilder | provenance | |
|
||||
| A.java:45:24:45:26 | bad : String | A.java:45:14:45:15 | sb [post update] : StringBuilder | provenance | MaD:5 |
|
||||
| A.java:45:24:45:26 | bad : String | A.java:45:14:45:27 | append(...) | provenance | MaD:5+MaD:4 |
|
||||
| A.java:47:14:47:30 | new Formatter(...) : Formatter | A.java:47:14:47:43 | format(...) : Formatter | provenance | MaD:3 |
|
||||
| A.java:45:24:45:26 | bad : String | A.java:45:14:45:15 | sb [post update] : StringBuilder | provenance | MaD:1 |
|
||||
| A.java:45:24:45:26 | bad : String | A.java:45:14:45:27 | append(...) | provenance | MaD:1+MaD:2 |
|
||||
| A.java:47:14:47:30 | new Formatter(...) : Formatter | A.java:47:14:47:43 | format(...) : Formatter | provenance | MaD:7 |
|
||||
| A.java:47:14:47:30 | new Formatter(...) : Formatter | A.java:47:14:47:54 | toString(...) | provenance | TaintPreservingCallable |
|
||||
| A.java:47:14:47:43 | format(...) : Formatter | A.java:47:14:47:54 | toString(...) | provenance | TaintPreservingCallable |
|
||||
| A.java:47:28:47:29 | sb : StringBuilder | A.java:47:14:47:30 | new Formatter(...) : Formatter | provenance | MaD:1 |
|
||||
nodes
|
||||
| A.java:12:22:12:29 | source(...) : String | semmle.label | source(...) : String |
|
||||
| A.java:15:14:15:16 | bad : String | semmle.label | bad : String |
|
||||
@@ -58,15 +48,11 @@ nodes
|
||||
| A.java:19:107:19:109 | bad : String | semmle.label | bad : String |
|
||||
| A.java:23:22:23:29 | source(...) : String | semmle.label | source(...) : String |
|
||||
| A.java:27:14:27:32 | format(...) | semmle.label | format(...) |
|
||||
| A.java:27:14:27:32 | new ..[] { .. } : Object[] [[]] : String | semmle.label | new ..[] { .. } : Object[] [[]] : String |
|
||||
| A.java:27:29:27:31 | bad : String | semmle.label | bad : String |
|
||||
| A.java:28:14:28:25 | toString(...) | semmle.label | toString(...) |
|
||||
| A.java:32:22:32:29 | source(...) : String | semmle.label | source(...) : String |
|
||||
| A.java:36:14:36:15 | sb : StringBuilder | semmle.label | sb : StringBuilder |
|
||||
| A.java:36:14:36:26 | toString(...) | semmle.label | toString(...) |
|
||||
| A.java:37:14:37:32 | format(...) | semmle.label | format(...) |
|
||||
| A.java:37:14:37:32 | new ..[] { .. } : Object[] [[]] : String | semmle.label | new ..[] { .. } : Object[] [[]] : String |
|
||||
| A.java:37:29:37:31 | bad : String | semmle.label | bad : String |
|
||||
| A.java:38:14:38:15 | sb : StringBuilder | semmle.label | sb : StringBuilder |
|
||||
| A.java:38:14:38:26 | toString(...) | semmle.label | toString(...) |
|
||||
| A.java:42:22:42:29 | source(...) : String | semmle.label | source(...) : String |
|
||||
@@ -76,6 +62,5 @@ nodes
|
||||
| A.java:47:14:47:30 | new Formatter(...) : Formatter | semmle.label | new Formatter(...) : Formatter |
|
||||
| A.java:47:14:47:43 | format(...) : Formatter | semmle.label | format(...) : Formatter |
|
||||
| A.java:47:14:47:54 | toString(...) | semmle.label | toString(...) |
|
||||
| A.java:47:28:47:29 | sb : StringBuilder | semmle.label | sb : StringBuilder |
|
||||
subpaths
|
||||
testFailures
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
models
|
||||
| 1 | Summary: com.fasterxml.jackson.databind; ObjectMapper; true; convertValue; ; ; Argument[0]; ReturnValue; taint; manual |
|
||||
| 2 | Summary: com.fasterxml.jackson.databind; ObjectMapper; true; valueToTree; ; ; Argument[0].MapValue; ReturnValue; taint; manual |
|
||||
| 3 | Summary: com.fasterxml.jackson.databind; ObjectMapper; true; valueToTree; ; ; Argument[0].MapValue.Element; ReturnValue; taint; manual |
|
||||
| 2 | Summary: com.fasterxml.jackson.databind; ObjectMapper; true; valueToTree; ; ; Argument[0].MapValue.Element; ReturnValue; taint; manual |
|
||||
| 3 | Summary: com.fasterxml.jackson.databind; ObjectMapper; true; valueToTree; ; ; Argument[0].MapValue; ReturnValue; taint; manual |
|
||||
| 4 | Summary: java.io; FileOutputStream; true; FileOutputStream; (File); ; Argument[0]; Argument[this]; taint; df-generated |
|
||||
| 5 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 6 | Summary: java.util; Iterator; true; next; ; ; Argument[this].Element; ReturnValue; value; manual |
|
||||
|
||||
@@ -5,7 +5,7 @@ private import semmle.code.java.dataflow.FlowSources
|
||||
private import semmle.code.java.dataflow.TaintTracking
|
||||
|
||||
private module ThreatModelConfig implements DataFlow::ConfigSig {
|
||||
predicate isSource(DataFlow::Node source) { source instanceof ThreatModelFlowSource }
|
||||
predicate isSource(DataFlow::Node source) { source instanceof ActiveThreatModelSource }
|
||||
|
||||
predicate isSink(DataFlow::Node sink) { sinkNode(sink, _) }
|
||||
}
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
models
|
||||
| 1 | Summary: java.io; InputStream; true; read; (byte[]); ; Argument[this]; Argument[0]; taint; manual |
|
||||
| 2 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 1 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual |
|
||||
| 2 | Sink: java.util.logging; Logger; true; severe; ; ; Argument[0]; log-injection; manual |
|
||||
| 3 | Source: java.net; Socket; false; getInputStream; (); ; ReturnValue; remote; manual |
|
||||
| 4 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual |
|
||||
| 5 | Sink: java.util.logging; Logger; true; severe; ; ; Argument[0]; log-injection; manual |
|
||||
| 4 | Summary: java.io; InputStream; true; read; (byte[]); ; Argument[this]; Argument[0]; taint; manual |
|
||||
| 5 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
edges
|
||||
| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | provenance | |
|
||||
| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | provenance | MaD:2 |
|
||||
| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | provenance | Src:MaD:3 MaD:1 |
|
||||
| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | provenance | MaD:5 |
|
||||
| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | provenance | Src:MaD:3 MaD:4 |
|
||||
| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | provenance | |
|
||||
| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | provenance | |
|
||||
| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | |
|
||||
| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | provenance | MaD:2 Sink:MaD:5 |
|
||||
| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | provenance | Sink:MaD:4 |
|
||||
| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | provenance | MaD:5 Sink:MaD:2 |
|
||||
| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | provenance | Sink:MaD:1 |
|
||||
| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | |
|
||||
| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | provenance | MaD:2 |
|
||||
| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | provenance | MaD:5 |
|
||||
nodes
|
||||
| Test.java:10:31:10:41 | data : byte[] | semmle.label | data : byte[] |
|
||||
| Test.java:11:12:11:51 | new String(...) : String | semmle.label | new String(...) : String |
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
models
|
||||
| 1 | Summary: java.io; InputStream; true; read; (byte[]); ; Argument[this]; Argument[0]; taint; manual |
|
||||
| 2 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 1 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual |
|
||||
| 2 | Sink: java.util.logging; Logger; true; severe; ; ; Argument[0]; log-injection; manual |
|
||||
| 3 | Source: java.net; Socket; false; getInputStream; (); ; ReturnValue; remote; manual |
|
||||
| 4 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual |
|
||||
| 5 | Sink: java.util.logging; Logger; true; severe; ; ; Argument[0]; log-injection; manual |
|
||||
| 6 | Source: testlib; TestSources; false; executeQuery; (String); ; ReturnValue; database; manual |
|
||||
| 4 | Source: testlib; TestSources; false; executeQuery; (String); ; ReturnValue; database; manual |
|
||||
| 5 | Summary: java.io; InputStream; true; read; (byte[]); ; Argument[this]; Argument[0]; taint; manual |
|
||||
| 6 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
edges
|
||||
| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | provenance | |
|
||||
| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | provenance | MaD:2 |
|
||||
| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | provenance | Src:MaD:3 MaD:1 |
|
||||
| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | provenance | MaD:6 |
|
||||
| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | provenance | Src:MaD:3 MaD:5 |
|
||||
| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | provenance | |
|
||||
| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | provenance | |
|
||||
| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | |
|
||||
| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | provenance | MaD:2 Sink:MaD:5 |
|
||||
| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | provenance | Sink:MaD:4 |
|
||||
| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | provenance | MaD:6 Sink:MaD:2 |
|
||||
| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | provenance | Sink:MaD:1 |
|
||||
| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | |
|
||||
| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | provenance | MaD:2 |
|
||||
| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | provenance | Src:MaD:6 Sink:MaD:4 |
|
||||
| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result | provenance | Src:MaD:6 Sink:MaD:5 |
|
||||
| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | provenance | MaD:6 |
|
||||
| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | provenance | Src:MaD:4 Sink:MaD:1 |
|
||||
| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result | provenance | Src:MaD:4 Sink:MaD:2 |
|
||||
nodes
|
||||
| Test.java:10:31:10:41 | data : byte[] | semmle.label | data : byte[] |
|
||||
| Test.java:11:12:11:51 | new String(...) : String | semmle.label | new String(...) : String |
|
||||
|
||||
@@ -1,34 +1,34 @@
|
||||
models
|
||||
| 1 | Summary: java.io; InputStream; true; read; (byte[]); ; Argument[this]; Argument[0]; taint; manual |
|
||||
| 2 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 1 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual |
|
||||
| 2 | Sink: java.util.logging; Logger; true; severe; ; ; Argument[0]; log-injection; manual |
|
||||
| 3 | Source: java.net; Socket; false; getInputStream; (); ; ReturnValue; remote; manual |
|
||||
| 4 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual |
|
||||
| 5 | Sink: java.util.logging; Logger; true; severe; ; ; Argument[0]; log-injection; manual |
|
||||
| 6 | Source: testlib; TestSources; false; executeQuery; (String); ; ReturnValue; database; manual |
|
||||
| 7 | Source: testlib; TestSources; false; readEnv; (String); ; ReturnValue; environment; manual |
|
||||
| 4 | Source: testlib; TestSources; false; executeQuery; (String); ; ReturnValue; database; manual |
|
||||
| 5 | Source: testlib; TestSources; false; readEnv; (String); ; ReturnValue; environment; manual |
|
||||
| 6 | Summary: java.io; InputStream; true; read; (byte[]); ; Argument[this]; Argument[0]; taint; manual |
|
||||
| 7 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
edges
|
||||
| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | provenance | |
|
||||
| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | provenance | MaD:2 |
|
||||
| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | provenance | Src:MaD:3 MaD:1 |
|
||||
| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | provenance | MaD:7 |
|
||||
| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | provenance | Src:MaD:3 MaD:6 |
|
||||
| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | provenance | |
|
||||
| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | provenance | |
|
||||
| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | |
|
||||
| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | provenance | MaD:2 Sink:MaD:5 |
|
||||
| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | provenance | Sink:MaD:4 |
|
||||
| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | provenance | MaD:7 Sink:MaD:2 |
|
||||
| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | provenance | Sink:MaD:1 |
|
||||
| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | |
|
||||
| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | provenance | MaD:2 |
|
||||
| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | provenance | Src:MaD:6 Sink:MaD:4 |
|
||||
| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result | provenance | Src:MaD:6 Sink:MaD:5 |
|
||||
| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:44:26:44:68 | ... + ... | provenance | Src:MaD:7 Sink:MaD:4 |
|
||||
| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:47:36:47:41 | result | provenance | Src:MaD:7 Sink:MaD:5 |
|
||||
| Test.java:64:5:64:13 | System.in : InputStream | Test.java:64:20:64:23 | data [post update] : byte[] | provenance | MaD:1 |
|
||||
| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | provenance | MaD:7 |
|
||||
| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | provenance | Src:MaD:4 Sink:MaD:1 |
|
||||
| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result | provenance | Src:MaD:4 Sink:MaD:2 |
|
||||
| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:44:26:44:68 | ... + ... | provenance | Src:MaD:5 Sink:MaD:1 |
|
||||
| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:47:36:47:41 | result | provenance | Src:MaD:5 Sink:MaD:2 |
|
||||
| Test.java:64:5:64:13 | System.in : InputStream | Test.java:64:20:64:23 | data [post update] : byte[] | provenance | MaD:6 |
|
||||
| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:67:69:67:72 | data : byte[] | provenance | |
|
||||
| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:70:49:70:52 | data : byte[] | provenance | |
|
||||
| Test.java:67:56:67:73 | byteToString(...) : String | Test.java:67:26:67:80 | ... + ... | provenance | Sink:MaD:4 |
|
||||
| Test.java:67:56:67:73 | byteToString(...) : String | Test.java:67:26:67:80 | ... + ... | provenance | Sink:MaD:1 |
|
||||
| Test.java:67:69:67:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | |
|
||||
| Test.java:67:69:67:72 | data : byte[] | Test.java:67:56:67:73 | byteToString(...) : String | provenance | MaD:2 |
|
||||
| Test.java:67:69:67:72 | data : byte[] | Test.java:67:56:67:73 | byteToString(...) : String | provenance | MaD:7 |
|
||||
| Test.java:70:49:70:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | |
|
||||
| Test.java:70:49:70:52 | data : byte[] | Test.java:70:36:70:53 | byteToString(...) | provenance | MaD:2 Sink:MaD:5 |
|
||||
| Test.java:70:49:70:52 | data : byte[] | Test.java:70:36:70:53 | byteToString(...) | provenance | MaD:7 Sink:MaD:2 |
|
||||
nodes
|
||||
| Test.java:10:31:10:41 | data : byte[] | semmle.label | data : byte[] |
|
||||
| Test.java:11:12:11:51 | new String(...) : String | semmle.label | new String(...) : String |
|
||||
|
||||
@@ -1,37 +1,37 @@
|
||||
models
|
||||
| 1 | Summary: java.io; InputStream; true; read; (byte[]); ; Argument[this]; Argument[0]; taint; manual |
|
||||
| 2 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 1 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual |
|
||||
| 2 | Sink: java.util.logging; Logger; true; severe; ; ; Argument[0]; log-injection; manual |
|
||||
| 3 | Source: java.net; Socket; false; getInputStream; (); ; ReturnValue; remote; manual |
|
||||
| 4 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual |
|
||||
| 5 | Sink: java.util.logging; Logger; true; severe; ; ; Argument[0]; log-injection; manual |
|
||||
| 6 | Source: testlib; TestSources; false; executeQuery; (String); ; ReturnValue; database; manual |
|
||||
| 7 | Source: testlib; TestSources; false; readEnv; (String); ; ReturnValue; environment; manual |
|
||||
| 8 | Source: testlib; TestSources; false; getCustom; (String); ; ReturnValue; custom; manual |
|
||||
| 4 | Source: testlib; TestSources; false; executeQuery; (String); ; ReturnValue; database; manual |
|
||||
| 5 | Source: testlib; TestSources; false; getCustom; (String); ; ReturnValue; custom; manual |
|
||||
| 6 | Source: testlib; TestSources; false; readEnv; (String); ; ReturnValue; environment; manual |
|
||||
| 7 | Summary: java.io; InputStream; true; read; (byte[]); ; Argument[this]; Argument[0]; taint; manual |
|
||||
| 8 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
edges
|
||||
| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | provenance | |
|
||||
| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | provenance | MaD:2 |
|
||||
| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | provenance | Src:MaD:3 MaD:1 |
|
||||
| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | provenance | MaD:8 |
|
||||
| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | provenance | Src:MaD:3 MaD:7 |
|
||||
| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | provenance | |
|
||||
| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | provenance | |
|
||||
| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | |
|
||||
| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | provenance | MaD:2 Sink:MaD:5 |
|
||||
| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | provenance | Sink:MaD:4 |
|
||||
| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | provenance | MaD:8 Sink:MaD:2 |
|
||||
| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | provenance | Sink:MaD:1 |
|
||||
| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | |
|
||||
| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | provenance | MaD:2 |
|
||||
| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | provenance | Src:MaD:6 Sink:MaD:4 |
|
||||
| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result | provenance | Src:MaD:6 Sink:MaD:5 |
|
||||
| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:44:26:44:68 | ... + ... | provenance | Src:MaD:7 Sink:MaD:4 |
|
||||
| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:47:36:47:41 | result | provenance | Src:MaD:7 Sink:MaD:5 |
|
||||
| Test.java:52:21:52:47 | getCustom(...) : String | Test.java:55:26:55:68 | ... + ... | provenance | Src:MaD:8 Sink:MaD:4 |
|
||||
| Test.java:52:21:52:47 | getCustom(...) : String | Test.java:58:36:58:41 | result | provenance | Src:MaD:8 Sink:MaD:5 |
|
||||
| Test.java:64:5:64:13 | System.in : InputStream | Test.java:64:20:64:23 | data [post update] : byte[] | provenance | MaD:1 |
|
||||
| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | provenance | MaD:8 |
|
||||
| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | provenance | Src:MaD:4 Sink:MaD:1 |
|
||||
| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result | provenance | Src:MaD:4 Sink:MaD:2 |
|
||||
| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:44:26:44:68 | ... + ... | provenance | Src:MaD:6 Sink:MaD:1 |
|
||||
| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:47:36:47:41 | result | provenance | Src:MaD:6 Sink:MaD:2 |
|
||||
| Test.java:52:21:52:47 | getCustom(...) : String | Test.java:55:26:55:68 | ... + ... | provenance | Src:MaD:5 Sink:MaD:1 |
|
||||
| Test.java:52:21:52:47 | getCustom(...) : String | Test.java:58:36:58:41 | result | provenance | Src:MaD:5 Sink:MaD:2 |
|
||||
| Test.java:64:5:64:13 | System.in : InputStream | Test.java:64:20:64:23 | data [post update] : byte[] | provenance | MaD:7 |
|
||||
| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:67:69:67:72 | data : byte[] | provenance | |
|
||||
| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:70:49:70:52 | data : byte[] | provenance | |
|
||||
| Test.java:67:56:67:73 | byteToString(...) : String | Test.java:67:26:67:80 | ... + ... | provenance | Sink:MaD:4 |
|
||||
| Test.java:67:56:67:73 | byteToString(...) : String | Test.java:67:26:67:80 | ... + ... | provenance | Sink:MaD:1 |
|
||||
| Test.java:67:69:67:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | |
|
||||
| Test.java:67:69:67:72 | data : byte[] | Test.java:67:56:67:73 | byteToString(...) : String | provenance | MaD:2 |
|
||||
| Test.java:67:69:67:72 | data : byte[] | Test.java:67:56:67:73 | byteToString(...) : String | provenance | MaD:8 |
|
||||
| Test.java:70:49:70:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | |
|
||||
| Test.java:70:49:70:52 | data : byte[] | Test.java:70:36:70:53 | byteToString(...) | provenance | MaD:2 Sink:MaD:5 |
|
||||
| Test.java:70:49:70:52 | data : byte[] | Test.java:70:36:70:53 | byteToString(...) | provenance | MaD:8 Sink:MaD:2 |
|
||||
nodes
|
||||
| Test.java:10:31:10:41 | data : byte[] | semmle.label | data : byte[] |
|
||||
| Test.java:11:12:11:51 | new String(...) : String | semmle.label | new String(...) : String |
|
||||
|
||||
@@ -1,31 +1,31 @@
|
||||
models
|
||||
| 1 | Summary: java.io; InputStream; true; read; (byte[]); ; Argument[this]; Argument[0]; taint; manual |
|
||||
| 2 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 1 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual |
|
||||
| 2 | Sink: java.util.logging; Logger; true; severe; ; ; Argument[0]; log-injection; manual |
|
||||
| 3 | Source: java.net; Socket; false; getInputStream; (); ; ReturnValue; remote; manual |
|
||||
| 4 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual |
|
||||
| 5 | Sink: java.util.logging; Logger; true; severe; ; ; Argument[0]; log-injection; manual |
|
||||
| 6 | Source: testlib; TestSources; false; readEnv; (String); ; ReturnValue; environment; manual |
|
||||
| 4 | Source: testlib; TestSources; false; readEnv; (String); ; ReturnValue; environment; manual |
|
||||
| 5 | Summary: java.io; InputStream; true; read; (byte[]); ; Argument[this]; Argument[0]; taint; manual |
|
||||
| 6 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
edges
|
||||
| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | provenance | |
|
||||
| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | provenance | MaD:2 |
|
||||
| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | provenance | Src:MaD:3 MaD:1 |
|
||||
| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | provenance | MaD:6 |
|
||||
| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | provenance | Src:MaD:3 MaD:5 |
|
||||
| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | provenance | |
|
||||
| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | provenance | |
|
||||
| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | |
|
||||
| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | provenance | MaD:2 Sink:MaD:5 |
|
||||
| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | provenance | Sink:MaD:4 |
|
||||
| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | provenance | MaD:6 Sink:MaD:2 |
|
||||
| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | provenance | Sink:MaD:1 |
|
||||
| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | |
|
||||
| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | provenance | MaD:2 |
|
||||
| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:44:26:44:68 | ... + ... | provenance | Src:MaD:6 Sink:MaD:4 |
|
||||
| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:47:36:47:41 | result | provenance | Src:MaD:6 Sink:MaD:5 |
|
||||
| Test.java:64:5:64:13 | System.in : InputStream | Test.java:64:20:64:23 | data [post update] : byte[] | provenance | MaD:1 |
|
||||
| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | provenance | MaD:6 |
|
||||
| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:44:26:44:68 | ... + ... | provenance | Src:MaD:4 Sink:MaD:1 |
|
||||
| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:47:36:47:41 | result | provenance | Src:MaD:4 Sink:MaD:2 |
|
||||
| Test.java:64:5:64:13 | System.in : InputStream | Test.java:64:20:64:23 | data [post update] : byte[] | provenance | MaD:5 |
|
||||
| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:67:69:67:72 | data : byte[] | provenance | |
|
||||
| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:70:49:70:52 | data : byte[] | provenance | |
|
||||
| Test.java:67:56:67:73 | byteToString(...) : String | Test.java:67:26:67:80 | ... + ... | provenance | Sink:MaD:4 |
|
||||
| Test.java:67:56:67:73 | byteToString(...) : String | Test.java:67:26:67:80 | ... + ... | provenance | Sink:MaD:1 |
|
||||
| Test.java:67:69:67:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | |
|
||||
| Test.java:67:69:67:72 | data : byte[] | Test.java:67:56:67:73 | byteToString(...) : String | provenance | MaD:2 |
|
||||
| Test.java:67:69:67:72 | data : byte[] | Test.java:67:56:67:73 | byteToString(...) : String | provenance | MaD:6 |
|
||||
| Test.java:70:49:70:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | |
|
||||
| Test.java:70:49:70:52 | data : byte[] | Test.java:70:36:70:53 | byteToString(...) | provenance | MaD:2 Sink:MaD:5 |
|
||||
| Test.java:70:49:70:52 | data : byte[] | Test.java:70:36:70:53 | byteToString(...) | provenance | MaD:6 Sink:MaD:2 |
|
||||
nodes
|
||||
| Test.java:10:31:10:41 | data : byte[] | semmle.label | data : byte[] |
|
||||
| Test.java:11:12:11:51 | new String(...) : String | semmle.label | new String(...) : String |
|
||||
|
||||
@@ -1,31 +1,31 @@
|
||||
models
|
||||
| 1 | Summary: java.io; InputStream; true; read; (byte[]); ; Argument[this]; Argument[0]; taint; manual |
|
||||
| 2 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 1 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual |
|
||||
| 2 | Sink: java.util.logging; Logger; true; severe; ; ; Argument[0]; log-injection; manual |
|
||||
| 3 | Source: java.net; Socket; false; getInputStream; (); ; ReturnValue; remote; manual |
|
||||
| 4 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual |
|
||||
| 5 | Sink: java.util.logging; Logger; true; severe; ; ; Argument[0]; log-injection; manual |
|
||||
| 6 | Source: testlib; TestSources; false; executeQuery; (String); ; ReturnValue; database; manual |
|
||||
| 4 | Source: testlib; TestSources; false; executeQuery; (String); ; ReturnValue; database; manual |
|
||||
| 5 | Summary: java.io; InputStream; true; read; (byte[]); ; Argument[this]; Argument[0]; taint; manual |
|
||||
| 6 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
edges
|
||||
| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | provenance | |
|
||||
| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | provenance | MaD:2 |
|
||||
| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | provenance | Src:MaD:3 MaD:1 |
|
||||
| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | provenance | MaD:6 |
|
||||
| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | provenance | Src:MaD:3 MaD:5 |
|
||||
| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | provenance | |
|
||||
| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | provenance | |
|
||||
| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | |
|
||||
| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | provenance | MaD:2 Sink:MaD:5 |
|
||||
| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | provenance | Sink:MaD:4 |
|
||||
| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | provenance | MaD:6 Sink:MaD:2 |
|
||||
| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | provenance | Sink:MaD:1 |
|
||||
| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | |
|
||||
| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | provenance | MaD:2 |
|
||||
| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | provenance | Src:MaD:6 Sink:MaD:4 |
|
||||
| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result | provenance | Src:MaD:6 Sink:MaD:5 |
|
||||
| Test.java:64:5:64:13 | System.in : InputStream | Test.java:64:20:64:23 | data [post update] : byte[] | provenance | MaD:1 |
|
||||
| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | provenance | MaD:6 |
|
||||
| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | provenance | Src:MaD:4 Sink:MaD:1 |
|
||||
| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result | provenance | Src:MaD:4 Sink:MaD:2 |
|
||||
| Test.java:64:5:64:13 | System.in : InputStream | Test.java:64:20:64:23 | data [post update] : byte[] | provenance | MaD:5 |
|
||||
| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:67:69:67:72 | data : byte[] | provenance | |
|
||||
| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:70:49:70:52 | data : byte[] | provenance | |
|
||||
| Test.java:67:56:67:73 | byteToString(...) : String | Test.java:67:26:67:80 | ... + ... | provenance | Sink:MaD:4 |
|
||||
| Test.java:67:56:67:73 | byteToString(...) : String | Test.java:67:26:67:80 | ... + ... | provenance | Sink:MaD:1 |
|
||||
| Test.java:67:69:67:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | |
|
||||
| Test.java:67:69:67:72 | data : byte[] | Test.java:67:56:67:73 | byteToString(...) : String | provenance | MaD:2 |
|
||||
| Test.java:67:69:67:72 | data : byte[] | Test.java:67:56:67:73 | byteToString(...) : String | provenance | MaD:6 |
|
||||
| Test.java:70:49:70:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | |
|
||||
| Test.java:70:49:70:52 | data : byte[] | Test.java:70:36:70:53 | byteToString(...) | provenance | MaD:2 Sink:MaD:5 |
|
||||
| Test.java:70:49:70:52 | data : byte[] | Test.java:70:36:70:53 | byteToString(...) | provenance | MaD:6 Sink:MaD:2 |
|
||||
nodes
|
||||
| Test.java:10:31:10:41 | data : byte[] | semmle.label | data : byte[] |
|
||||
| Test.java:11:12:11:51 | new String(...) : String | semmle.label | new String(...) : String |
|
||||
|
||||
Reference in New Issue
Block a user