models | 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 | 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: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: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: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 | | Test.java:11:23:11:26 | data : byte[] | semmle.label | data : byte[] | | Test.java:19:5:19:25 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | | Test.java:19:32:19:35 | data [post update] : byte[] | semmle.label | data [post update] : byte[] | | Test.java:22:36:22:53 | byteToString(...) | semmle.label | byteToString(...) | | Test.java:22:49:22:52 | data : byte[] | semmle.label | data : byte[] | | Test.java:25:26:25:80 | ... + ... | semmle.label | ... + ... | | Test.java:25:56:25:73 | byteToString(...) : String | semmle.label | byteToString(...) : String | | Test.java:25:69:25:72 | data : byte[] | semmle.label | data : byte[] | | Test.java:30:21:30:61 | executeQuery(...) : String | semmle.label | executeQuery(...) : String | | Test.java:33:26:33:68 | ... + ... | semmle.label | ... + ... | | Test.java:36:36:36:41 | result | semmle.label | result | subpaths | Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | Test.java:22:36:22:53 | byteToString(...) | | Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | Test.java:25:56:25:73 | byteToString(...) : String | #select | Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:22:36:22:53 | byteToString(...) | | Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:25:26:25:80 | ... + ... | | Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | | Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result |