mirror of
https://github.com/github/codeql.git
synced 2026-05-01 03:35:13 +02:00
Add more test cases
This commit is contained in:
@@ -1,31 +1,72 @@
|
||||
| Tuples.cs:5:13:5:56 | SSA def(x) | Tuples.cs:6:27:6:27 | access to local variable x |
|
||||
| Tuples.cs:5:13:5:56 | SSA qualifier def(x.Item1) | Tuples.cs:21:14:21:20 | access to field Item1 |
|
||||
| Tuples.cs:5:13:5:56 | SSA qualifier def(x.Item2) | Tuples.cs:23:14:23:20 | access to field Item2 |
|
||||
| Tuples.cs:5:13:5:56 | SSA qualifier def(x.Item2.Item1) | Tuples.cs:23:14:23:26 | access to field Item1 |
|
||||
| Tuples.cs:5:13:5:56 | SSA qualifier def(x.Item2.Item2) | Tuples.cs:24:14:24:26 | access to field Item2 |
|
||||
| Tuples.cs:5:17:5:56 | (..., ...) | Tuples.cs:5:13:5:56 | SSA def(x) |
|
||||
| Tuples.cs:6:9:6:27 | SSA def(a) | Tuples.cs:7:14:7:14 | access to local variable a |
|
||||
| Tuples.cs:6:9:6:27 | SSA def(b) | Tuples.cs:8:14:8:14 | access to local variable b |
|
||||
| Tuples.cs:6:9:6:27 | SSA def(c) | Tuples.cs:9:14:9:14 | access to local variable c |
|
||||
| Tuples.cs:6:27:6:27 | access to local variable x | Tuples.cs:6:9:6:23 | (..., ...) |
|
||||
| Tuples.cs:6:27:6:27 | access to local variable x | Tuples.cs:11:23:11:23 | access to local variable x |
|
||||
| Tuples.cs:11:9:11:23 | SSA def(a) | Tuples.cs:12:14:12:14 | access to local variable a |
|
||||
| Tuples.cs:11:9:11:23 | SSA def(b) | Tuples.cs:13:14:13:14 | access to local variable b |
|
||||
| Tuples.cs:11:9:11:23 | SSA def(c) | Tuples.cs:14:14:14:14 | access to local variable c |
|
||||
| Tuples.cs:11:23:11:23 | access to local variable x | Tuples.cs:11:9:11:19 | (..., ...) |
|
||||
| Tuples.cs:11:23:11:23 | access to local variable x | Tuples.cs:16:26:16:26 | access to local variable x |
|
||||
| Tuples.cs:16:9:16:26 | SSA def(p) | Tuples.cs:17:14:17:14 | access to local variable p |
|
||||
| Tuples.cs:16:9:16:26 | SSA def(q) | Tuples.cs:18:14:18:14 | access to local variable q |
|
||||
| Tuples.cs:16:9:16:26 | SSA qualifier def(q.Item1) | Tuples.cs:18:14:18:20 | access to field Item1 |
|
||||
| Tuples.cs:16:9:16:26 | SSA qualifier def(q.Item2) | Tuples.cs:19:14:19:20 | access to field Item2 |
|
||||
| Tuples.cs:16:26:16:26 | access to local variable x | Tuples.cs:16:9:16:22 | (..., ...) |
|
||||
| Tuples.cs:16:26:16:26 | access to local variable x | Tuples.cs:21:14:21:14 | access to local variable x |
|
||||
| Tuples.cs:18:14:18:14 | access to local variable q | Tuples.cs:19:14:19:14 | access to local variable q |
|
||||
| Tuples.cs:21:14:21:14 | [post] access to local variable x | Tuples.cs:22:14:22:14 | access to local variable x |
|
||||
| Tuples.cs:21:14:21:14 | access to local variable x | Tuples.cs:22:14:22:14 | access to local variable x |
|
||||
| Tuples.cs:21:14:21:20 | [post] access to field Item1 | Tuples.cs:22:14:22:16 | access to field Item1 |
|
||||
| Tuples.cs:21:14:21:20 | access to field Item1 | Tuples.cs:22:14:22:16 | access to field Item1 |
|
||||
| Tuples.cs:22:14:22:14 | [post] access to local variable x | Tuples.cs:23:14:23:14 | access to local variable x |
|
||||
| Tuples.cs:22:14:22:14 | access to local variable x | Tuples.cs:23:14:23:14 | access to local variable x |
|
||||
| Tuples.cs:7:13:7:56 | SSA def(x) | Tuples.cs:8:27:8:27 | access to local variable x |
|
||||
| Tuples.cs:7:13:7:56 | SSA qualifier def(x.Item1) | Tuples.cs:23:14:23:20 | access to field Item1 |
|
||||
| Tuples.cs:7:13:7:56 | SSA qualifier def(x.Item2) | Tuples.cs:25:14:25:20 | access to field Item2 |
|
||||
| Tuples.cs:7:13:7:56 | SSA qualifier def(x.Item2.Item1) | Tuples.cs:25:14:25:26 | access to field Item1 |
|
||||
| Tuples.cs:7:13:7:56 | SSA qualifier def(x.Item2.Item2) | Tuples.cs:26:14:26:26 | access to field Item2 |
|
||||
| Tuples.cs:7:17:7:56 | (..., ...) | Tuples.cs:7:13:7:56 | SSA def(x) |
|
||||
| Tuples.cs:8:9:8:27 | SSA def(a) | Tuples.cs:9:14:9:14 | access to local variable a |
|
||||
| Tuples.cs:8:9:8:27 | SSA def(b) | Tuples.cs:10:14:10:14 | access to local variable b |
|
||||
| Tuples.cs:8:9:8:27 | SSA def(c) | Tuples.cs:11:14:11:14 | access to local variable c |
|
||||
| Tuples.cs:8:27:8:27 | access to local variable x | Tuples.cs:8:9:8:23 | (..., ...) |
|
||||
| Tuples.cs:8:27:8:27 | access to local variable x | Tuples.cs:13:23:13:23 | access to local variable x |
|
||||
| Tuples.cs:13:9:13:23 | SSA def(a) | Tuples.cs:14:14:14:14 | access to local variable a |
|
||||
| Tuples.cs:13:9:13:23 | SSA def(b) | Tuples.cs:15:14:15:14 | access to local variable b |
|
||||
| Tuples.cs:13:9:13:23 | SSA def(c) | Tuples.cs:16:14:16:14 | access to local variable c |
|
||||
| Tuples.cs:13:23:13:23 | access to local variable x | Tuples.cs:13:9:13:19 | (..., ...) |
|
||||
| Tuples.cs:13:23:13:23 | access to local variable x | Tuples.cs:18:26:18:26 | access to local variable x |
|
||||
| Tuples.cs:18:9:18:26 | SSA def(p) | Tuples.cs:19:14:19:14 | access to local variable p |
|
||||
| Tuples.cs:18:9:18:26 | SSA def(q) | Tuples.cs:20:14:20:14 | access to local variable q |
|
||||
| Tuples.cs:18:9:18:26 | SSA qualifier def(q.Item1) | Tuples.cs:20:14:20:20 | access to field Item1 |
|
||||
| Tuples.cs:18:9:18:26 | SSA qualifier def(q.Item2) | Tuples.cs:21:14:21:20 | access to field Item2 |
|
||||
| Tuples.cs:18:26:18:26 | access to local variable x | Tuples.cs:18:9:18:22 | (..., ...) |
|
||||
| Tuples.cs:18:26:18:26 | access to local variable x | Tuples.cs:23:14:23:14 | access to local variable x |
|
||||
| Tuples.cs:20:14:20:14 | access to local variable q | Tuples.cs:21:14:21:14 | access to local variable q |
|
||||
| Tuples.cs:23:14:23:14 | [post] access to local variable x | Tuples.cs:24:14:24:14 | access to local variable x |
|
||||
| Tuples.cs:23:14:23:14 | access to local variable x | Tuples.cs:24:14:24:14 | access to local variable x |
|
||||
| Tuples.cs:23:14:23:20 | access to field Item2 | Tuples.cs:24:14:24:20 | access to field Item2 |
|
||||
| Tuples.cs:23:14:23:20 | [post] access to field Item1 | Tuples.cs:24:14:24:16 | access to field Item1 |
|
||||
| Tuples.cs:23:14:23:20 | access to field Item1 | Tuples.cs:24:14:24:16 | access to field Item1 |
|
||||
| Tuples.cs:24:14:24:14 | [post] access to local variable x | Tuples.cs:25:14:25:14 | access to local variable x |
|
||||
| Tuples.cs:24:14:24:14 | access to local variable x | Tuples.cs:25:14:25:14 | access to local variable x |
|
||||
| Tuples.cs:25:14:25:14 | access to local variable x | Tuples.cs:26:14:26:14 | access to local variable x |
|
||||
| Tuples.cs:25:14:25:20 | access to field Item2 | Tuples.cs:26:14:26:20 | access to field Item2 |
|
||||
| Tuples.cs:31:13:31:72 | SSA def(x) | Tuples.cs:32:14:32:14 | access to local variable x |
|
||||
| Tuples.cs:31:13:31:72 | SSA qualifier def(x.Item1) | Tuples.cs:32:14:32:20 | access to field Item1 |
|
||||
| Tuples.cs:31:13:31:72 | SSA qualifier def(x.Item2) | Tuples.cs:33:14:33:20 | access to field Item2 |
|
||||
| Tuples.cs:31:13:31:72 | SSA qualifier def(x.Item10) | Tuples.cs:34:14:34:21 | access to field Item10 |
|
||||
| Tuples.cs:31:17:31:72 | (..., ...) | Tuples.cs:31:13:31:72 | SSA def(x) |
|
||||
| Tuples.cs:32:14:32:14 | [post] access to local variable x | Tuples.cs:33:14:33:14 | access to local variable x |
|
||||
| Tuples.cs:32:14:32:14 | access to local variable x | Tuples.cs:33:14:33:14 | access to local variable x |
|
||||
| Tuples.cs:33:14:33:14 | access to local variable x | Tuples.cs:34:14:34:14 | access to local variable x |
|
||||
| Tuples.cs:39:13:39:68 | SSA def(x) | Tuples.cs:40:14:40:14 | access to local variable x |
|
||||
| Tuples.cs:39:13:39:68 | SSA qualifier def(x.Item1) | Tuples.cs:40:14:40:20 | access to field Item1 |
|
||||
| Tuples.cs:39:13:39:68 | SSA qualifier def(x.Item2) | Tuples.cs:41:14:41:20 | access to field Item2 |
|
||||
| Tuples.cs:39:17:39:68 | (...) ... | Tuples.cs:39:13:39:68 | SSA def(x) |
|
||||
| Tuples.cs:39:47:39:68 | (..., ...) | Tuples.cs:39:17:39:68 | (...) ... |
|
||||
| Tuples.cs:40:14:40:14 | [post] access to local variable x | Tuples.cs:41:14:41:14 | access to local variable x |
|
||||
| Tuples.cs:40:14:40:14 | access to local variable x | Tuples.cs:41:14:41:14 | access to local variable x |
|
||||
| Tuples.cs:43:13:43:68 | SSA def(y) | Tuples.cs:44:14:44:14 | access to local variable y |
|
||||
| Tuples.cs:43:13:43:68 | SSA qualifier def(y.Item1) | Tuples.cs:44:14:44:20 | access to field Item1 |
|
||||
| Tuples.cs:43:13:43:68 | SSA qualifier def(y.Item2) | Tuples.cs:45:14:45:20 | access to field Item2 |
|
||||
| Tuples.cs:43:17:43:68 | (...) ... | Tuples.cs:43:13:43:68 | SSA def(y) |
|
||||
| Tuples.cs:43:47:43:68 | (...) ... | Tuples.cs:43:17:43:68 | (...) ... |
|
||||
| Tuples.cs:43:47:43:68 | (..., ...) | Tuples.cs:43:47:43:68 | (...) ... |
|
||||
| Tuples.cs:44:14:44:14 | [post] access to local variable y | Tuples.cs:45:14:45:14 | access to local variable y |
|
||||
| Tuples.cs:44:14:44:14 | access to local variable y | Tuples.cs:45:14:45:14 | access to local variable y |
|
||||
| Tuples.cs:50:13:50:38 | SSA def(x) | Tuples.cs:51:17:51:17 | access to local variable x |
|
||||
| Tuples.cs:50:17:50:38 | (..., ...) | Tuples.cs:50:13:50:38 | SSA def(x) |
|
||||
| Tuples.cs:51:17:51:17 | access to local variable x | Tuples.cs:53:18:53:47 | SSA def(t) |
|
||||
| Tuples.cs:53:18:53:47 | SSA def(t) | Tuples.cs:53:54:53:54 | access to local variable t |
|
||||
| Tuples.cs:53:18:53:47 | SSA qualifier def(t.Item2) | Tuples.cs:53:54:53:60 | access to field Item2 |
|
||||
| Tuples.cs:55:23:55:23 | SSA def(a) | Tuples.cs:56:22:56:22 | access to local variable a |
|
||||
| Tuples.cs:55:26:55:26 | SSA def(b) | Tuples.cs:57:22:57:22 | access to local variable b |
|
||||
| Tuples.cs:66:13:66:41 | SSA def(r) | Tuples.cs:67:14:67:14 | access to local variable r |
|
||||
| Tuples.cs:66:13:66:41 | SSA qualifier def(r.i) | Tuples.cs:67:14:67:16 | access to property i |
|
||||
| Tuples.cs:66:17:66:41 | object creation of type R1 | Tuples.cs:66:13:66:41 | SSA def(r) |
|
||||
| Tuples.cs:67:14:67:14 | [post] access to local variable r | Tuples.cs:69:22:69:22 | access to local variable r |
|
||||
| Tuples.cs:67:14:67:14 | access to local variable r | Tuples.cs:69:22:69:22 | access to local variable r |
|
||||
| Tuples.cs:69:9:69:22 | SSA def(a) | Tuples.cs:70:14:70:14 | access to local variable a |
|
||||
| Tuples.cs:69:9:69:22 | SSA def(b) | Tuples.cs:71:14:71:14 | access to local variable b |
|
||||
| Tuples.cs:69:22:69:22 | access to local variable r | Tuples.cs:69:9:69:18 | (..., ...) |
|
||||
| Tuples.cs:69:22:69:22 | access to local variable r | Tuples.cs:73:17:73:17 | access to local variable r |
|
||||
| Tuples.cs:75:23:75:23 | SSA def(x) | Tuples.cs:76:22:76:22 | access to local variable x |
|
||||
| Tuples.cs:75:26:75:26 | SSA def(y) | Tuples.cs:77:22:77:22 | access to local variable y |
|
||||
|
||||
@@ -1,91 +1,274 @@
|
||||
Tuples.cs:
|
||||
# 1| [Class] Tuples
|
||||
# 3| 5: [Method] M1
|
||||
# 3| -1: [TypeMention] Void
|
||||
# 4| 4: [BlockStmt] {...}
|
||||
# 5| 0: [LocalVariableDeclStmt] ... ...;
|
||||
# 5| 0: [LocalVariableDeclAndInitExpr] (String,(Int32,String)) x = ...
|
||||
# 5| -1: [TypeMention] (string, (int, string))
|
||||
# 5| 0: [LocalVariableAccess] access to local variable x
|
||||
# 5| 1: [TupleExpr] (..., ...)
|
||||
# 5| 0: [StringLiteral] "taint source"
|
||||
# 5| 1: [TupleExpr] (..., ...)
|
||||
# 5| 0: [IntLiteral] 1
|
||||
# 5| 1: [StringLiteral] "taint source"
|
||||
# 6| 1: [ExprStmt] ...;
|
||||
# 6| 0: [AssignExpr] ... = ...
|
||||
# 6| 0: [TupleExpr] (..., ...)
|
||||
# 6| 0: [LocalVariableDeclExpr] String a
|
||||
# 6| 1: [TupleExpr] (..., ...)
|
||||
# 6| 0: [LocalVariableDeclExpr] Int32 b
|
||||
# 6| 1: [LocalVariableDeclExpr] String c
|
||||
# 6| 1: [LocalVariableAccess] access to local variable x
|
||||
# 7| 2: [ExprStmt] ...;
|
||||
# 7| 0: [MethodCall] call to method Sink
|
||||
# 7| 0: [LocalVariableAccess] access to local variable a
|
||||
# 8| 3: [ExprStmt] ...;
|
||||
# 8| 0: [MethodCall] call to method Sink
|
||||
# 8| 0: [LocalVariableAccess] access to local variable b
|
||||
# 9| 4: [ExprStmt] ...;
|
||||
# 3| [Class] Tuples
|
||||
# 5| 5: [Method] M1
|
||||
# 5| -1: [TypeMention] Void
|
||||
# 6| 4: [BlockStmt] {...}
|
||||
# 7| 0: [LocalVariableDeclStmt] ... ...;
|
||||
# 7| 0: [LocalVariableDeclAndInitExpr] (String,(Int32,String)) x = ...
|
||||
# 7| -1: [TypeMention] (string, (int, string))
|
||||
# 7| 0: [LocalVariableAccess] access to local variable x
|
||||
# 7| 1: [TupleExpr] (..., ...)
|
||||
# 7| 0: [StringLiteral] "taint source"
|
||||
# 7| 1: [TupleExpr] (..., ...)
|
||||
# 7| 0: [IntLiteral] 1
|
||||
# 7| 1: [StringLiteral] "taint source"
|
||||
# 8| 1: [ExprStmt] ...;
|
||||
# 8| 0: [AssignExpr] ... = ...
|
||||
# 8| 0: [TupleExpr] (..., ...)
|
||||
# 8| 0: [LocalVariableDeclExpr] String a
|
||||
# 8| 1: [TupleExpr] (..., ...)
|
||||
# 8| 0: [LocalVariableDeclExpr] Int32 b
|
||||
# 8| 1: [LocalVariableDeclExpr] String c
|
||||
# 8| 1: [LocalVariableAccess] access to local variable x
|
||||
# 9| 2: [ExprStmt] ...;
|
||||
# 9| 0: [MethodCall] call to method Sink
|
||||
# 9| 0: [LocalVariableAccess] access to local variable c
|
||||
# 11| 5: [ExprStmt] ...;
|
||||
# 11| 0: [AssignExpr] ... = ...
|
||||
# 11| 0: [TupleExpr] (..., ...)
|
||||
# 11| 0: [LocalVariableAccess] access to local variable a
|
||||
# 11| 1: [TupleExpr] (..., ...)
|
||||
# 11| 0: [LocalVariableAccess] access to local variable b
|
||||
# 11| 1: [LocalVariableAccess] access to local variable c
|
||||
# 11| 1: [LocalVariableAccess] access to local variable x
|
||||
# 12| 6: [ExprStmt] ...;
|
||||
# 12| 0: [MethodCall] call to method Sink
|
||||
# 12| 0: [LocalVariableAccess] access to local variable a
|
||||
# 13| 7: [ExprStmt] ...;
|
||||
# 13| 0: [MethodCall] call to method Sink
|
||||
# 13| 0: [LocalVariableAccess] access to local variable b
|
||||
# 14| 8: [ExprStmt] ...;
|
||||
# 9| 0: [LocalVariableAccess] access to local variable a
|
||||
# 10| 3: [ExprStmt] ...;
|
||||
# 10| 0: [MethodCall] call to method Sink
|
||||
# 10| 0: [LocalVariableAccess] access to local variable b
|
||||
# 11| 4: [ExprStmt] ...;
|
||||
# 11| 0: [MethodCall] call to method Sink
|
||||
# 11| 0: [LocalVariableAccess] access to local variable c
|
||||
# 13| 5: [ExprStmt] ...;
|
||||
# 13| 0: [AssignExpr] ... = ...
|
||||
# 13| 0: [TupleExpr] (..., ...)
|
||||
# 13| 0: [LocalVariableAccess] access to local variable a
|
||||
# 13| 1: [TupleExpr] (..., ...)
|
||||
# 13| 0: [LocalVariableAccess] access to local variable b
|
||||
# 13| 1: [LocalVariableAccess] access to local variable c
|
||||
# 13| 1: [LocalVariableAccess] access to local variable x
|
||||
# 14| 6: [ExprStmt] ...;
|
||||
# 14| 0: [MethodCall] call to method Sink
|
||||
# 14| 0: [LocalVariableAccess] access to local variable c
|
||||
# 16| 9: [ExprStmt] ...;
|
||||
# 16| 0: [AssignExpr] ... = ...
|
||||
# 16| 0: [TupleExpr] (..., ...)
|
||||
# 16| 0: [LocalVariableDeclExpr] String p
|
||||
# 16| 1: [LocalVariableDeclExpr] (Int32,String) q
|
||||
# 16| 1: [LocalVariableAccess] access to local variable x
|
||||
# 17| 10: [ExprStmt] ...;
|
||||
# 17| 0: [MethodCall] call to method Sink
|
||||
# 17| 0: [LocalVariableAccess] access to local variable p
|
||||
# 18| 11: [ExprStmt] ...;
|
||||
# 18| 0: [MethodCall] call to method Sink
|
||||
# 18| 0: [FieldAccess] access to field Item1
|
||||
# 18| -1: [LocalVariableAccess] access to local variable q
|
||||
# 19| 12: [ExprStmt] ...;
|
||||
# 14| 0: [LocalVariableAccess] access to local variable a
|
||||
# 15| 7: [ExprStmt] ...;
|
||||
# 15| 0: [MethodCall] call to method Sink
|
||||
# 15| 0: [LocalVariableAccess] access to local variable b
|
||||
# 16| 8: [ExprStmt] ...;
|
||||
# 16| 0: [MethodCall] call to method Sink
|
||||
# 16| 0: [LocalVariableAccess] access to local variable c
|
||||
# 18| 9: [ExprStmt] ...;
|
||||
# 18| 0: [AssignExpr] ... = ...
|
||||
# 18| 0: [TupleExpr] (..., ...)
|
||||
# 18| 0: [LocalVariableDeclExpr] String p
|
||||
# 18| 1: [LocalVariableDeclExpr] (Int32,String) q
|
||||
# 18| 1: [LocalVariableAccess] access to local variable x
|
||||
# 19| 10: [ExprStmt] ...;
|
||||
# 19| 0: [MethodCall] call to method Sink
|
||||
# 19| 0: [FieldAccess] access to field Item2
|
||||
# 19| -1: [LocalVariableAccess] access to local variable q
|
||||
# 21| 13: [ExprStmt] ...;
|
||||
# 19| 0: [LocalVariableAccess] access to local variable p
|
||||
# 20| 11: [ExprStmt] ...;
|
||||
# 20| 0: [MethodCall] call to method Sink
|
||||
# 20| 0: [FieldAccess] access to field Item1
|
||||
# 20| -1: [LocalVariableAccess] access to local variable q
|
||||
# 21| 12: [ExprStmt] ...;
|
||||
# 21| 0: [MethodCall] call to method Sink
|
||||
# 21| 0: [FieldAccess] access to field Item1
|
||||
# 21| -1: [LocalVariableAccess] access to local variable x
|
||||
# 22| 14: [ExprStmt] ...;
|
||||
# 22| 0: [MethodCall] call to method Sink
|
||||
# 22| 0: [FieldAccess] access to field Item1
|
||||
# 22| -1: [LocalVariableAccess] access to local variable x
|
||||
# 23| 15: [ExprStmt] ...;
|
||||
# 21| 0: [FieldAccess] access to field Item2
|
||||
# 21| -1: [LocalVariableAccess] access to local variable q
|
||||
# 23| 13: [ExprStmt] ...;
|
||||
# 23| 0: [MethodCall] call to method Sink
|
||||
# 23| 0: [FieldAccess] access to field Item1
|
||||
# 23| -1: [FieldAccess] access to field Item2
|
||||
# 23| -1: [LocalVariableAccess] access to local variable x
|
||||
# 24| 16: [ExprStmt] ...;
|
||||
# 23| -1: [LocalVariableAccess] access to local variable x
|
||||
# 24| 14: [ExprStmt] ...;
|
||||
# 24| 0: [MethodCall] call to method Sink
|
||||
# 24| 0: [FieldAccess] access to field Item2
|
||||
# 24| -1: [FieldAccess] access to field Item2
|
||||
# 24| -1: [LocalVariableAccess] access to local variable x
|
||||
# 27| 6: [Method] Sink
|
||||
# 27| -1: [TypeMention] Void
|
||||
# 24| 0: [FieldAccess] access to field Item1
|
||||
# 24| -1: [LocalVariableAccess] access to local variable x
|
||||
# 25| 15: [ExprStmt] ...;
|
||||
# 25| 0: [MethodCall] call to method Sink
|
||||
# 25| 0: [FieldAccess] access to field Item1
|
||||
# 25| -1: [FieldAccess] access to field Item2
|
||||
# 25| -1: [LocalVariableAccess] access to local variable x
|
||||
# 26| 16: [ExprStmt] ...;
|
||||
# 26| 0: [MethodCall] call to method Sink
|
||||
# 26| 0: [FieldAccess] access to field Item2
|
||||
# 26| -1: [FieldAccess] access to field Item2
|
||||
# 26| -1: [LocalVariableAccess] access to local variable x
|
||||
# 29| 6: [Method] M2
|
||||
# 29| -1: [TypeMention] Void
|
||||
# 30| 4: [BlockStmt] {...}
|
||||
# 31| 0: [LocalVariableDeclStmt] ... ...;
|
||||
# 31| 0: [LocalVariableDeclAndInitExpr] (String,Int32,Int32,Int32,Int32,Int32,Int32,Int32,Int32,String) x = ...
|
||||
# 31| -1: [TypeMention] (string, int, int, int, int, int, int, int, int, string)
|
||||
# 31| 0: [LocalVariableAccess] access to local variable x
|
||||
# 31| 1: [TupleExpr] (..., ...)
|
||||
# 31| 0: [StringLiteral] "taint source"
|
||||
# 31| 1: [IntLiteral] 2
|
||||
# 31| 2: [IntLiteral] 3
|
||||
# 31| 3: [IntLiteral] 4
|
||||
# 31| 4: [IntLiteral] 5
|
||||
# 31| 5: [IntLiteral] 6
|
||||
# 31| 6: [IntLiteral] 7
|
||||
# 31| 7: [IntLiteral] 8
|
||||
# 31| 8: [IntLiteral] 9
|
||||
# 31| 9: [StringLiteral] "taint source"
|
||||
# 32| 1: [ExprStmt] ...;
|
||||
# 32| 0: [MethodCall] call to method Sink
|
||||
# 32| 0: [FieldAccess] access to field Item1
|
||||
# 32| -1: [LocalVariableAccess] access to local variable x
|
||||
# 33| 2: [ExprStmt] ...;
|
||||
# 33| 0: [MethodCall] call to method Sink
|
||||
# 33| 0: [FieldAccess] access to field Item2
|
||||
# 33| -1: [LocalVariableAccess] access to local variable x
|
||||
# 34| 3: [ExprStmt] ...;
|
||||
# 34| 0: [MethodCall] call to method Sink
|
||||
# 34| 0: [FieldAccess] access to field Item10
|
||||
# 34| -1: [LocalVariableAccess] access to local variable x
|
||||
# 37| 7: [Method] M3
|
||||
# 37| -1: [TypeMention] Void
|
||||
# 38| 4: [BlockStmt] {...}
|
||||
# 39| 0: [LocalVariableDeclStmt] ... ...;
|
||||
# 39| 0: [LocalVariableDeclAndInitExpr] (String,Int32,Int32) x = ...
|
||||
# 39| -1: [TypeMention] (string, int, int)
|
||||
# 39| 0: [LocalVariableAccess] access to local variable x
|
||||
# 39| 1: [CastExpr] (...) ...
|
||||
# 39| 0: [TypeAccess] access to type (String,Int32,Int32)
|
||||
# 39| 0: [TypeMention] (string, int, int)
|
||||
# 39| 1: [TypeMention] string
|
||||
# 39| 2: [TypeMention] int
|
||||
# 39| 3: [TypeMention] int
|
||||
# 39| 1: [TupleExpr] (..., ...)
|
||||
# 39| 0: [StringLiteral] "taint source"
|
||||
# 39| 1: [IntLiteral] 2
|
||||
# 39| 2: [IntLiteral] 3
|
||||
# 40| 1: [ExprStmt] ...;
|
||||
# 40| 0: [MethodCall] call to method Sink
|
||||
# 40| 0: [FieldAccess] access to field Item1
|
||||
# 40| -1: [LocalVariableAccess] access to local variable x
|
||||
# 41| 2: [ExprStmt] ...;
|
||||
# 41| 0: [MethodCall] call to method Sink
|
||||
# 41| 0: [FieldAccess] access to field Item2
|
||||
# 41| -1: [LocalVariableAccess] access to local variable x
|
||||
# 43| 3: [LocalVariableDeclStmt] ... ...;
|
||||
# 43| 0: [LocalVariableDeclAndInitExpr] (Object,Int32,Int32) y = ...
|
||||
# 43| -1: [TypeMention] (object, int, int)
|
||||
# 43| 0: [LocalVariableAccess] access to local variable y
|
||||
# 43| 1: [CastExpr] (...) ...
|
||||
# 43| 0: [TypeAccess] access to type (Object,Int32,Int32)
|
||||
# 43| 0: [TypeMention] (object, int, int)
|
||||
# 43| 1: [TypeMention] object
|
||||
# 43| 2: [TypeMention] int
|
||||
# 43| 3: [TypeMention] int
|
||||
# 43| 1: [CastExpr] (...) ...
|
||||
# 43| 1: [TupleExpr] (..., ...)
|
||||
# 43| 0: [StringLiteral] "taint source"
|
||||
# 43| 1: [IntLiteral] 2
|
||||
# 43| 2: [IntLiteral] 3
|
||||
# 44| 4: [ExprStmt] ...;
|
||||
# 44| 0: [MethodCall] call to method Sink
|
||||
# 44| 0: [FieldAccess] access to field Item1
|
||||
# 44| -1: [LocalVariableAccess] access to local variable y
|
||||
# 45| 5: [ExprStmt] ...;
|
||||
# 45| 0: [MethodCall] call to method Sink
|
||||
# 45| 0: [FieldAccess] access to field Item2
|
||||
# 45| -1: [LocalVariableAccess] access to local variable y
|
||||
# 48| 8: [Method] M4
|
||||
# 48| -1: [TypeMention] Void
|
||||
# 49| 4: [BlockStmt] {...}
|
||||
# 50| 0: [LocalVariableDeclStmt] ... ...;
|
||||
# 50| 0: [LocalVariableDeclAndInitExpr] (String,Int32,Int32) x = ...
|
||||
# 50| -1: [TypeMention] (string, int, int)
|
||||
# 50| 0: [LocalVariableAccess] access to local variable x
|
||||
# 50| 1: [TupleExpr] (..., ...)
|
||||
# 50| 0: [StringLiteral] "taint source"
|
||||
# 50| 1: [IntLiteral] 2
|
||||
# 50| 2: [IntLiteral] 3
|
||||
# 51| 1: [SwitchStmt] switch (...) {...}
|
||||
# 51| 0: [LocalVariableAccess] access to local variable x
|
||||
# 53| 0: [CaseStmt] case ...:
|
||||
# 53| 0: [VariablePatternExpr] (String,Int32,Int32) t
|
||||
# 53| 0: [TypeMention] (string, int, int)
|
||||
# 53| 1: [TypeMention] string
|
||||
# 53| 2: [TypeMention] int
|
||||
# 53| 3: [TypeMention] int
|
||||
# 53| 1: [GTExpr] ... > ...
|
||||
# 53| 0: [FieldAccess] access to field Item2
|
||||
# 53| -1: [LocalVariableAccess] access to local variable t
|
||||
# 53| 1: [IntLiteral] 10
|
||||
# 54| 1: [BreakStmt] break;
|
||||
# 55| 2: [CaseStmt] case ...:
|
||||
# 55| 0: [TupleExpr] (..., ...)
|
||||
# 55| 0: [LocalVariableDeclExpr] String a
|
||||
# 55| 1: [LocalVariableDeclExpr] Int32 b
|
||||
# 55| 2: [DiscardExpr] _
|
||||
# 56| 3: [ExprStmt] ...;
|
||||
# 56| 0: [MethodCall] call to method Sink
|
||||
# 56| 0: [LocalVariableAccess] access to local variable a
|
||||
# 57| 4: [ExprStmt] ...;
|
||||
# 57| 0: [MethodCall] call to method Sink
|
||||
# 57| 0: [LocalVariableAccess] access to local variable b
|
||||
# 58| 5: [BreakStmt] break;
|
||||
# 62| 9: [Record] R1
|
||||
# 62| 12: [NEOperator] !=
|
||||
#-----| 2: (Parameters)
|
||||
# 62| 0: [Parameter] r1
|
||||
# 62| 1: [Parameter] r2
|
||||
# 62| 13: [EQOperator] ==
|
||||
#-----| 2: (Parameters)
|
||||
# 62| 0: [Parameter] r1
|
||||
# 62| 1: [Parameter] r2
|
||||
# 62| 14: [Property] EqualityContract
|
||||
# 62| 3: [Getter] get_EqualityContract
|
||||
# 62| 15: [InstanceConstructor] R1
|
||||
#-----| 2: (Parameters)
|
||||
# 62| 0: [Parameter] i
|
||||
# 62| -1: [TypeMention] string
|
||||
# 62| 1: [Parameter] j
|
||||
# 62| -1: [TypeMention] int
|
||||
# 62| 16: [Property] i
|
||||
# 62| 3: [Getter] get_i
|
||||
# 62| 4: [Setter] set_i
|
||||
#-----| 2: (Parameters)
|
||||
# 62| 0: [Parameter] value
|
||||
# 62| 17: [Property] j
|
||||
# 62| 3: [Getter] get_j
|
||||
# 62| 4: [Setter] set_j
|
||||
#-----| 2: (Parameters)
|
||||
# 62| 0: [Parameter] value
|
||||
# 64| 10: [Method] M5
|
||||
# 64| -1: [TypeMention] Void
|
||||
# 65| 4: [BlockStmt] {...}
|
||||
# 66| 0: [LocalVariableDeclStmt] ... ...;
|
||||
# 66| 0: [LocalVariableDeclAndInitExpr] R1 r = ...
|
||||
# 66| -1: [TypeMention] R1
|
||||
# 66| 0: [LocalVariableAccess] access to local variable r
|
||||
# 66| 1: [ObjectCreation] object creation of type R1
|
||||
# 66| -1: [TypeMention] R1
|
||||
# 66| 0: [StringLiteral] "taint source"
|
||||
# 66| 1: [IntLiteral] 1
|
||||
# 67| 1: [ExprStmt] ...;
|
||||
# 67| 0: [MethodCall] call to method Sink
|
||||
# 67| 0: [PropertyCall] access to property i
|
||||
# 67| -1: [LocalVariableAccess] access to local variable r
|
||||
# 69| 2: [ExprStmt] ...;
|
||||
# 69| 0: [AssignExpr] ... = ...
|
||||
# 69| 0: [TupleExpr] (..., ...)
|
||||
# 69| 0: [LocalVariableDeclExpr] String a
|
||||
# 69| 1: [LocalVariableDeclExpr] Int32 b
|
||||
# 69| 1: [LocalVariableAccess] access to local variable r
|
||||
# 70| 3: [ExprStmt] ...;
|
||||
# 70| 0: [MethodCall] call to method Sink
|
||||
# 70| 0: [LocalVariableAccess] access to local variable a
|
||||
# 71| 4: [ExprStmt] ...;
|
||||
# 71| 0: [MethodCall] call to method Sink
|
||||
# 71| 0: [LocalVariableAccess] access to local variable b
|
||||
# 73| 5: [SwitchStmt] switch (...) {...}
|
||||
# 73| 0: [LocalVariableAccess] access to local variable r
|
||||
# 75| 0: [CaseStmt] case ...:
|
||||
# 75| 0: [TupleExpr] (..., ...)
|
||||
# 75| 0: [LocalVariableDeclExpr] String x
|
||||
# 75| 1: [LocalVariableDeclExpr] Int32 y
|
||||
# 76| 1: [ExprStmt] ...;
|
||||
# 76| 0: [MethodCall] call to method Sink
|
||||
# 76| 0: [LocalVariableAccess] access to local variable x
|
||||
# 77| 2: [ExprStmt] ...;
|
||||
# 77| 0: [MethodCall] call to method Sink
|
||||
# 77| 0: [LocalVariableAccess] access to local variable y
|
||||
# 78| 3: [BreakStmt] break;
|
||||
# 82| 11: [Method] Sink
|
||||
# 82| -1: [TypeMention] Void
|
||||
#-----| 1: (Type parameters)
|
||||
# 27| 0: [TypeParameter] T
|
||||
# 82| 0: [TypeParameter] T
|
||||
#-----| 2: (Parameters)
|
||||
# 27| 0: [Parameter] x
|
||||
# 27| -1: [TypeMention] T
|
||||
# 27| 4: [BlockStmt] {...}
|
||||
# 82| 0: [Parameter] x
|
||||
# 82| -1: [TypeMention] T
|
||||
# 82| 4: [BlockStmt] {...}
|
||||
# 85| [NamespaceDeclaration] namespace ... { ... }
|
||||
# 87| 1: [Class] IsExternalInit
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
using System;
|
||||
|
||||
class Tuples
|
||||
{
|
||||
static void M1()
|
||||
@@ -24,5 +26,63 @@ class Tuples
|
||||
Sink(x.Item2.Item2); // Tainted
|
||||
}
|
||||
|
||||
static void M2()
|
||||
{
|
||||
var x = ("taint source", 2, 3, 4, 5, 6, 7, 8, 9, "taint source");
|
||||
Sink(x.Item1); // Tainted
|
||||
Sink(x.Item2);
|
||||
Sink(x.Item10); // Tainted
|
||||
}
|
||||
|
||||
static void M3()
|
||||
{
|
||||
var x = (ValueTuple<string, int, int>)("taint source", 2, 3);
|
||||
Sink(x.Item1); // Tainted
|
||||
Sink(x.Item2);
|
||||
|
||||
var y = (ValueTuple<object, int, int>)("taint source", 2, 3);
|
||||
Sink(y.Item1); // Tainted, not found
|
||||
Sink(y.Item2);
|
||||
}
|
||||
|
||||
static void M4()
|
||||
{
|
||||
var x = ("taint source", 2, 3);
|
||||
switch (x)
|
||||
{
|
||||
case ValueTuple<string, int, int> t when t.Item2 > 10:
|
||||
break;
|
||||
case var (a, b, _):
|
||||
Sink(a); // Tainted, not found
|
||||
Sink(b);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
record R1(string i, int j) { };
|
||||
|
||||
static void M5()
|
||||
{
|
||||
var r = new R1("taint source", 1);
|
||||
Sink(r.i); // Tainted
|
||||
|
||||
var (a, b) = r;
|
||||
Sink(a); // Tainted, not found
|
||||
Sink(b);
|
||||
|
||||
switch (r)
|
||||
{
|
||||
case var (x, y):
|
||||
Sink(x); // Tainted, not found
|
||||
Sink(y);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void Sink<T>(T x) { }
|
||||
}
|
||||
|
||||
namespace System.Runtime.CompilerServices
|
||||
{
|
||||
public class IsExternalInit { }
|
||||
}
|
||||
@@ -1,79 +1,113 @@
|
||||
edges
|
||||
| Tuples.cs:5:17:5:56 | (..., ...) [Item1] : String | Tuples.cs:6:9:6:23 | (..., ...) [Item1] : String |
|
||||
| Tuples.cs:5:17:5:56 | (..., ...) [Item1] : String | Tuples.cs:11:9:11:19 | (..., ...) [Item1] : String |
|
||||
| Tuples.cs:5:17:5:56 | (..., ...) [Item1] : String | Tuples.cs:16:9:16:22 | (..., ...) [Item1] : String |
|
||||
| Tuples.cs:5:17:5:56 | (..., ...) [Item1] : String | Tuples.cs:21:14:21:14 | access to local variable x [Item1] : String |
|
||||
| Tuples.cs:5:17:5:56 | (..., ...) [Item1] : String | Tuples.cs:22:14:22:14 | access to local variable x [Item1] : String |
|
||||
| Tuples.cs:5:17:5:56 | (..., ...) [Item2, Item2] : String | Tuples.cs:5:37:5:55 | (..., ...) [Item2] : String |
|
||||
| Tuples.cs:5:17:5:56 | (..., ...) [Item2, Item2] : String | Tuples.cs:6:9:6:23 | (..., ...) [Item2, Item2] : String |
|
||||
| Tuples.cs:5:17:5:56 | (..., ...) [Item2, Item2] : String | Tuples.cs:11:9:11:19 | (..., ...) [Item2, Item2] : String |
|
||||
| Tuples.cs:5:17:5:56 | (..., ...) [Item2, Item2] : String | Tuples.cs:16:9:16:22 | (..., ...) [Item2, Item2] : String |
|
||||
| Tuples.cs:5:17:5:56 | (..., ...) [Item2, Item2] : String | Tuples.cs:24:14:24:14 | access to local variable x [Item2, Item2] : String |
|
||||
| Tuples.cs:5:21:5:34 | "taint source" : String | Tuples.cs:5:17:5:56 | (..., ...) [Item1] : String |
|
||||
| Tuples.cs:5:37:5:55 | (..., ...) [Item2] : String | Tuples.cs:5:17:5:56 | (..., ...) [Item2, Item2] : String |
|
||||
| Tuples.cs:5:41:5:54 | "taint source" : String | Tuples.cs:5:37:5:55 | (..., ...) [Item2] : String |
|
||||
| Tuples.cs:6:9:6:23 | (..., ...) [Item1] : String | Tuples.cs:6:9:6:27 | SSA def(a) : String |
|
||||
| Tuples.cs:6:9:6:23 | (..., ...) [Item2, Item2] : String | Tuples.cs:6:9:6:23 | (..., ...) [Item2] : String |
|
||||
| Tuples.cs:6:9:6:23 | (..., ...) [Item2] : String | Tuples.cs:6:9:6:23 | (..., ...) [Item2, Item2] : String |
|
||||
| Tuples.cs:6:9:6:23 | (..., ...) [Item2] : String | Tuples.cs:6:9:6:27 | SSA def(c) : String |
|
||||
| Tuples.cs:6:9:6:27 | SSA def(a) : String | Tuples.cs:7:14:7:14 | access to local variable a |
|
||||
| Tuples.cs:6:9:6:27 | SSA def(c) : String | Tuples.cs:9:14:9:14 | access to local variable c |
|
||||
| Tuples.cs:11:9:11:19 | (..., ...) [Item1] : String | Tuples.cs:11:9:11:23 | SSA def(a) : String |
|
||||
| Tuples.cs:11:9:11:19 | (..., ...) [Item2, Item2] : String | Tuples.cs:11:13:11:18 | (..., ...) [Item2] : String |
|
||||
| Tuples.cs:11:9:11:23 | SSA def(a) : String | Tuples.cs:12:14:12:14 | access to local variable a |
|
||||
| Tuples.cs:11:9:11:23 | SSA def(c) : String | Tuples.cs:14:14:14:14 | access to local variable c |
|
||||
| Tuples.cs:11:13:11:18 | (..., ...) [Item2] : String | Tuples.cs:11:9:11:19 | (..., ...) [Item2, Item2] : String |
|
||||
| Tuples.cs:11:13:11:18 | (..., ...) [Item2] : String | Tuples.cs:11:9:11:23 | SSA def(c) : String |
|
||||
| Tuples.cs:16:9:16:22 | (..., ...) [Item1] : String | Tuples.cs:16:9:16:26 | SSA def(p) : String |
|
||||
| Tuples.cs:16:9:16:22 | (..., ...) [Item2, Item2] : String | Tuples.cs:16:9:16:26 | SSA def(q) [Item2] : String |
|
||||
| Tuples.cs:16:9:16:26 | SSA def(p) : String | Tuples.cs:17:14:17:14 | access to local variable p |
|
||||
| Tuples.cs:16:9:16:26 | SSA def(q) [Item2] : String | Tuples.cs:19:14:19:14 | access to local variable q [Item2] : String |
|
||||
| Tuples.cs:19:14:19:14 | access to local variable q [Item2] : String | Tuples.cs:19:14:19:20 | access to field Item2 |
|
||||
| Tuples.cs:21:14:21:14 | access to local variable x [Item1] : String | Tuples.cs:21:14:21:20 | access to field Item1 |
|
||||
| Tuples.cs:22:14:22:14 | access to local variable x [Item1] : String | Tuples.cs:22:14:22:16 | access to field Item1 |
|
||||
| Tuples.cs:24:14:24:14 | access to local variable x [Item2, Item2] : String | Tuples.cs:24:14:24:20 | access to field Item2 [Item2] : String |
|
||||
| Tuples.cs:24:14:24:20 | access to field Item2 [Item2] : String | Tuples.cs:24:14:24:26 | access to field Item2 |
|
||||
| Tuples.cs:7:17:7:56 | (..., ...) [Item1] : String | Tuples.cs:8:9:8:23 | (..., ...) [Item1] : String |
|
||||
| Tuples.cs:7:17:7:56 | (..., ...) [Item1] : String | Tuples.cs:13:9:13:19 | (..., ...) [Item1] : String |
|
||||
| Tuples.cs:7:17:7:56 | (..., ...) [Item1] : String | Tuples.cs:18:9:18:22 | (..., ...) [Item1] : String |
|
||||
| Tuples.cs:7:17:7:56 | (..., ...) [Item1] : String | Tuples.cs:23:14:23:14 | access to local variable x [Item1] : String |
|
||||
| Tuples.cs:7:17:7:56 | (..., ...) [Item1] : String | Tuples.cs:24:14:24:14 | access to local variable x [Item1] : String |
|
||||
| Tuples.cs:7:17:7:56 | (..., ...) [Item2, Item2] : String | Tuples.cs:7:37:7:55 | (..., ...) [Item2] : String |
|
||||
| Tuples.cs:7:17:7:56 | (..., ...) [Item2, Item2] : String | Tuples.cs:8:9:8:23 | (..., ...) [Item2, Item2] : String |
|
||||
| Tuples.cs:7:17:7:56 | (..., ...) [Item2, Item2] : String | Tuples.cs:13:9:13:19 | (..., ...) [Item2, Item2] : String |
|
||||
| Tuples.cs:7:17:7:56 | (..., ...) [Item2, Item2] : String | Tuples.cs:18:9:18:22 | (..., ...) [Item2, Item2] : String |
|
||||
| Tuples.cs:7:17:7:56 | (..., ...) [Item2, Item2] : String | Tuples.cs:26:14:26:14 | access to local variable x [Item2, Item2] : String |
|
||||
| Tuples.cs:7:21:7:34 | "taint source" : String | Tuples.cs:7:17:7:56 | (..., ...) [Item1] : String |
|
||||
| Tuples.cs:7:37:7:55 | (..., ...) [Item2] : String | Tuples.cs:7:17:7:56 | (..., ...) [Item2, Item2] : String |
|
||||
| Tuples.cs:7:41:7:54 | "taint source" : String | Tuples.cs:7:37:7:55 | (..., ...) [Item2] : String |
|
||||
| Tuples.cs:8:9:8:23 | (..., ...) [Item1] : String | Tuples.cs:8:9:8:27 | SSA def(a) : String |
|
||||
| Tuples.cs:8:9:8:23 | (..., ...) [Item2, Item2] : String | Tuples.cs:8:9:8:23 | (..., ...) [Item2] : String |
|
||||
| Tuples.cs:8:9:8:23 | (..., ...) [Item2] : String | Tuples.cs:8:9:8:23 | (..., ...) [Item2, Item2] : String |
|
||||
| Tuples.cs:8:9:8:23 | (..., ...) [Item2] : String | Tuples.cs:8:9:8:27 | SSA def(c) : String |
|
||||
| Tuples.cs:8:9:8:27 | SSA def(a) : String | Tuples.cs:9:14:9:14 | access to local variable a |
|
||||
| Tuples.cs:8:9:8:27 | SSA def(c) : String | Tuples.cs:11:14:11:14 | access to local variable c |
|
||||
| Tuples.cs:13:9:13:19 | (..., ...) [Item1] : String | Tuples.cs:13:9:13:23 | SSA def(a) : String |
|
||||
| Tuples.cs:13:9:13:19 | (..., ...) [Item2, Item2] : String | Tuples.cs:13:13:13:18 | (..., ...) [Item2] : String |
|
||||
| Tuples.cs:13:9:13:23 | SSA def(a) : String | Tuples.cs:14:14:14:14 | access to local variable a |
|
||||
| Tuples.cs:13:9:13:23 | SSA def(c) : String | Tuples.cs:16:14:16:14 | access to local variable c |
|
||||
| Tuples.cs:13:13:13:18 | (..., ...) [Item2] : String | Tuples.cs:13:9:13:19 | (..., ...) [Item2, Item2] : String |
|
||||
| Tuples.cs:13:13:13:18 | (..., ...) [Item2] : String | Tuples.cs:13:9:13:23 | SSA def(c) : String |
|
||||
| Tuples.cs:18:9:18:22 | (..., ...) [Item1] : String | Tuples.cs:18:9:18:26 | SSA def(p) : String |
|
||||
| Tuples.cs:18:9:18:22 | (..., ...) [Item2, Item2] : String | Tuples.cs:18:9:18:26 | SSA def(q) [Item2] : String |
|
||||
| Tuples.cs:18:9:18:26 | SSA def(p) : String | Tuples.cs:19:14:19:14 | access to local variable p |
|
||||
| Tuples.cs:18:9:18:26 | SSA def(q) [Item2] : String | Tuples.cs:21:14:21:14 | access to local variable q [Item2] : String |
|
||||
| Tuples.cs:21:14:21:14 | access to local variable q [Item2] : String | Tuples.cs:21:14:21:20 | access to field Item2 |
|
||||
| Tuples.cs:23:14:23:14 | access to local variable x [Item1] : String | Tuples.cs:23:14:23:20 | access to field Item1 |
|
||||
| Tuples.cs:24:14:24:14 | access to local variable x [Item1] : String | Tuples.cs:24:14:24:16 | access to field Item1 |
|
||||
| Tuples.cs:26:14:26:14 | access to local variable x [Item2, Item2] : String | Tuples.cs:26:14:26:20 | access to field Item2 [Item2] : String |
|
||||
| Tuples.cs:26:14:26:20 | access to field Item2 [Item2] : String | Tuples.cs:26:14:26:26 | access to field Item2 |
|
||||
| Tuples.cs:31:17:31:72 | (..., ...) [Item1] : String | Tuples.cs:32:14:32:14 | access to local variable x [Item1] : String |
|
||||
| Tuples.cs:31:17:31:72 | (..., ...) [Item10] : String | Tuples.cs:34:14:34:14 | access to local variable x [Item10] : String |
|
||||
| Tuples.cs:31:18:31:31 | "taint source" : String | Tuples.cs:31:17:31:72 | (..., ...) [Item1] : String |
|
||||
| Tuples.cs:31:58:31:71 | "taint source" : String | Tuples.cs:31:17:31:72 | (..., ...) [Item10] : String |
|
||||
| Tuples.cs:32:14:32:14 | access to local variable x [Item1] : String | Tuples.cs:32:14:32:20 | access to field Item1 |
|
||||
| Tuples.cs:34:14:34:14 | access to local variable x [Item10] : String | Tuples.cs:34:14:34:21 | access to field Item10 |
|
||||
| Tuples.cs:39:17:39:68 | (...) ... [Item1] : String | Tuples.cs:40:14:40:14 | access to local variable x [Item1] : String |
|
||||
| Tuples.cs:39:47:39:68 | (..., ...) [Item1] : String | Tuples.cs:39:17:39:68 | (...) ... [Item1] : String |
|
||||
| Tuples.cs:39:48:39:61 | "taint source" : String | Tuples.cs:39:47:39:68 | (..., ...) [Item1] : String |
|
||||
| Tuples.cs:40:14:40:14 | access to local variable x [Item1] : String | Tuples.cs:40:14:40:20 | access to field Item1 |
|
||||
| Tuples.cs:66:17:66:41 | object creation of type R1 [i] : String | Tuples.cs:67:14:67:14 | access to local variable r [i] : String |
|
||||
| Tuples.cs:66:24:66:37 | "taint source" : String | Tuples.cs:66:17:66:41 | object creation of type R1 [i] : String |
|
||||
| Tuples.cs:67:14:67:14 | access to local variable r [i] : String | Tuples.cs:67:14:67:16 | access to property i |
|
||||
nodes
|
||||
| Tuples.cs:5:17:5:56 | (..., ...) [Item1] : String | semmle.label | (..., ...) [Item1] : String |
|
||||
| Tuples.cs:5:17:5:56 | (..., ...) [Item2, Item2] : String | semmle.label | (..., ...) [Item2, Item2] : String |
|
||||
| Tuples.cs:5:21:5:34 | "taint source" : String | semmle.label | "taint source" : String |
|
||||
| Tuples.cs:5:37:5:55 | (..., ...) [Item2] : String | semmle.label | (..., ...) [Item2] : String |
|
||||
| Tuples.cs:5:41:5:54 | "taint source" : String | semmle.label | "taint source" : String |
|
||||
| Tuples.cs:6:9:6:23 | (..., ...) [Item1] : String | semmle.label | (..., ...) [Item1] : String |
|
||||
| Tuples.cs:6:9:6:23 | (..., ...) [Item2, Item2] : String | semmle.label | (..., ...) [Item2, Item2] : String |
|
||||
| Tuples.cs:6:9:6:23 | (..., ...) [Item2] : String | semmle.label | (..., ...) [Item2] : String |
|
||||
| Tuples.cs:6:9:6:27 | SSA def(a) : String | semmle.label | SSA def(a) : String |
|
||||
| Tuples.cs:6:9:6:27 | SSA def(c) : String | semmle.label | SSA def(c) : String |
|
||||
| Tuples.cs:7:14:7:14 | access to local variable a | semmle.label | access to local variable a |
|
||||
| Tuples.cs:9:14:9:14 | access to local variable c | semmle.label | access to local variable c |
|
||||
| Tuples.cs:11:9:11:19 | (..., ...) [Item1] : String | semmle.label | (..., ...) [Item1] : String |
|
||||
| Tuples.cs:11:9:11:19 | (..., ...) [Item2, Item2] : String | semmle.label | (..., ...) [Item2, Item2] : String |
|
||||
| Tuples.cs:11:9:11:23 | SSA def(a) : String | semmle.label | SSA def(a) : String |
|
||||
| Tuples.cs:11:9:11:23 | SSA def(c) : String | semmle.label | SSA def(c) : String |
|
||||
| Tuples.cs:11:13:11:18 | (..., ...) [Item2] : String | semmle.label | (..., ...) [Item2] : String |
|
||||
| Tuples.cs:12:14:12:14 | access to local variable a | semmle.label | access to local variable a |
|
||||
| Tuples.cs:14:14:14:14 | access to local variable c | semmle.label | access to local variable c |
|
||||
| Tuples.cs:16:9:16:22 | (..., ...) [Item1] : String | semmle.label | (..., ...) [Item1] : String |
|
||||
| Tuples.cs:16:9:16:22 | (..., ...) [Item2, Item2] : String | semmle.label | (..., ...) [Item2, Item2] : String |
|
||||
| Tuples.cs:16:9:16:26 | SSA def(p) : String | semmle.label | SSA def(p) : String |
|
||||
| Tuples.cs:16:9:16:26 | SSA def(q) [Item2] : String | semmle.label | SSA def(q) [Item2] : String |
|
||||
| Tuples.cs:17:14:17:14 | access to local variable p | semmle.label | access to local variable p |
|
||||
| Tuples.cs:19:14:19:14 | access to local variable q [Item2] : String | semmle.label | access to local variable q [Item2] : String |
|
||||
| Tuples.cs:19:14:19:20 | access to field Item2 | semmle.label | access to field Item2 |
|
||||
| Tuples.cs:21:14:21:14 | access to local variable x [Item1] : String | semmle.label | access to local variable x [Item1] : String |
|
||||
| Tuples.cs:21:14:21:20 | access to field Item1 | semmle.label | access to field Item1 |
|
||||
| Tuples.cs:22:14:22:14 | access to local variable x [Item1] : String | semmle.label | access to local variable x [Item1] : String |
|
||||
| Tuples.cs:22:14:22:16 | access to field Item1 | semmle.label | access to field Item1 |
|
||||
| Tuples.cs:24:14:24:14 | access to local variable x [Item2, Item2] : String | semmle.label | access to local variable x [Item2, Item2] : String |
|
||||
| Tuples.cs:24:14:24:20 | access to field Item2 [Item2] : String | semmle.label | access to field Item2 [Item2] : String |
|
||||
| Tuples.cs:24:14:24:26 | access to field Item2 | semmle.label | access to field Item2 |
|
||||
| Tuples.cs:7:17:7:56 | (..., ...) [Item1] : String | semmle.label | (..., ...) [Item1] : String |
|
||||
| Tuples.cs:7:17:7:56 | (..., ...) [Item2, Item2] : String | semmle.label | (..., ...) [Item2, Item2] : String |
|
||||
| Tuples.cs:7:21:7:34 | "taint source" : String | semmle.label | "taint source" : String |
|
||||
| Tuples.cs:7:37:7:55 | (..., ...) [Item2] : String | semmle.label | (..., ...) [Item2] : String |
|
||||
| Tuples.cs:7:41:7:54 | "taint source" : String | semmle.label | "taint source" : String |
|
||||
| Tuples.cs:8:9:8:23 | (..., ...) [Item1] : String | semmle.label | (..., ...) [Item1] : String |
|
||||
| Tuples.cs:8:9:8:23 | (..., ...) [Item2, Item2] : String | semmle.label | (..., ...) [Item2, Item2] : String |
|
||||
| Tuples.cs:8:9:8:23 | (..., ...) [Item2] : String | semmle.label | (..., ...) [Item2] : String |
|
||||
| Tuples.cs:8:9:8:27 | SSA def(a) : String | semmle.label | SSA def(a) : String |
|
||||
| Tuples.cs:8:9:8:27 | SSA def(c) : String | semmle.label | SSA def(c) : String |
|
||||
| Tuples.cs:9:14:9:14 | access to local variable a | semmle.label | access to local variable a |
|
||||
| Tuples.cs:11:14:11:14 | access to local variable c | semmle.label | access to local variable c |
|
||||
| Tuples.cs:13:9:13:19 | (..., ...) [Item1] : String | semmle.label | (..., ...) [Item1] : String |
|
||||
| Tuples.cs:13:9:13:19 | (..., ...) [Item2, Item2] : String | semmle.label | (..., ...) [Item2, Item2] : String |
|
||||
| Tuples.cs:13:9:13:23 | SSA def(a) : String | semmle.label | SSA def(a) : String |
|
||||
| Tuples.cs:13:9:13:23 | SSA def(c) : String | semmle.label | SSA def(c) : String |
|
||||
| Tuples.cs:13:13:13:18 | (..., ...) [Item2] : String | semmle.label | (..., ...) [Item2] : String |
|
||||
| Tuples.cs:14:14:14:14 | access to local variable a | semmle.label | access to local variable a |
|
||||
| Tuples.cs:16:14:16:14 | access to local variable c | semmle.label | access to local variable c |
|
||||
| Tuples.cs:18:9:18:22 | (..., ...) [Item1] : String | semmle.label | (..., ...) [Item1] : String |
|
||||
| Tuples.cs:18:9:18:22 | (..., ...) [Item2, Item2] : String | semmle.label | (..., ...) [Item2, Item2] : String |
|
||||
| Tuples.cs:18:9:18:26 | SSA def(p) : String | semmle.label | SSA def(p) : String |
|
||||
| Tuples.cs:18:9:18:26 | SSA def(q) [Item2] : String | semmle.label | SSA def(q) [Item2] : String |
|
||||
| Tuples.cs:19:14:19:14 | access to local variable p | semmle.label | access to local variable p |
|
||||
| Tuples.cs:21:14:21:14 | access to local variable q [Item2] : String | semmle.label | access to local variable q [Item2] : String |
|
||||
| Tuples.cs:21:14:21:20 | access to field Item2 | semmle.label | access to field Item2 |
|
||||
| Tuples.cs:23:14:23:14 | access to local variable x [Item1] : String | semmle.label | access to local variable x [Item1] : String |
|
||||
| Tuples.cs:23:14:23:20 | access to field Item1 | semmle.label | access to field Item1 |
|
||||
| Tuples.cs:24:14:24:14 | access to local variable x [Item1] : String | semmle.label | access to local variable x [Item1] : String |
|
||||
| Tuples.cs:24:14:24:16 | access to field Item1 | semmle.label | access to field Item1 |
|
||||
| Tuples.cs:26:14:26:14 | access to local variable x [Item2, Item2] : String | semmle.label | access to local variable x [Item2, Item2] : String |
|
||||
| Tuples.cs:26:14:26:20 | access to field Item2 [Item2] : String | semmle.label | access to field Item2 [Item2] : String |
|
||||
| Tuples.cs:26:14:26:26 | access to field Item2 | semmle.label | access to field Item2 |
|
||||
| Tuples.cs:31:17:31:72 | (..., ...) [Item1] : String | semmle.label | (..., ...) [Item1] : String |
|
||||
| Tuples.cs:31:17:31:72 | (..., ...) [Item10] : String | semmle.label | (..., ...) [Item10] : String |
|
||||
| Tuples.cs:31:18:31:31 | "taint source" : String | semmle.label | "taint source" : String |
|
||||
| Tuples.cs:31:58:31:71 | "taint source" : String | semmle.label | "taint source" : String |
|
||||
| Tuples.cs:32:14:32:14 | access to local variable x [Item1] : String | semmle.label | access to local variable x [Item1] : String |
|
||||
| Tuples.cs:32:14:32:20 | access to field Item1 | semmle.label | access to field Item1 |
|
||||
| Tuples.cs:34:14:34:14 | access to local variable x [Item10] : String | semmle.label | access to local variable x [Item10] : String |
|
||||
| Tuples.cs:34:14:34:21 | access to field Item10 | semmle.label | access to field Item10 |
|
||||
| Tuples.cs:39:17:39:68 | (...) ... [Item1] : String | semmle.label | (...) ... [Item1] : String |
|
||||
| Tuples.cs:39:47:39:68 | (..., ...) [Item1] : String | semmle.label | (..., ...) [Item1] : String |
|
||||
| Tuples.cs:39:48:39:61 | "taint source" : String | semmle.label | "taint source" : String |
|
||||
| Tuples.cs:40:14:40:14 | access to local variable x [Item1] : String | semmle.label | access to local variable x [Item1] : String |
|
||||
| Tuples.cs:40:14:40:20 | access to field Item1 | semmle.label | access to field Item1 |
|
||||
| Tuples.cs:66:17:66:41 | object creation of type R1 [i] : String | semmle.label | object creation of type R1 [i] : String |
|
||||
| Tuples.cs:66:24:66:37 | "taint source" : String | semmle.label | "taint source" : String |
|
||||
| Tuples.cs:67:14:67:14 | access to local variable r [i] : String | semmle.label | access to local variable r [i] : String |
|
||||
| Tuples.cs:67:14:67:16 | access to property i | semmle.label | access to property i |
|
||||
#select
|
||||
| Tuples.cs:5:21:5:34 | "taint source" : String | Tuples.cs:5:21:5:34 | "taint source" : String | Tuples.cs:7:14:7:14 | access to local variable a | $@ | Tuples.cs:7:14:7:14 | access to local variable a | access to local variable a |
|
||||
| Tuples.cs:5:21:5:34 | "taint source" : String | Tuples.cs:5:21:5:34 | "taint source" : String | Tuples.cs:12:14:12:14 | access to local variable a | $@ | Tuples.cs:12:14:12:14 | access to local variable a | access to local variable a |
|
||||
| Tuples.cs:5:21:5:34 | "taint source" : String | Tuples.cs:5:21:5:34 | "taint source" : String | Tuples.cs:17:14:17:14 | access to local variable p | $@ | Tuples.cs:17:14:17:14 | access to local variable p | access to local variable p |
|
||||
| Tuples.cs:5:21:5:34 | "taint source" : String | Tuples.cs:5:21:5:34 | "taint source" : String | Tuples.cs:21:14:21:20 | access to field Item1 | $@ | Tuples.cs:21:14:21:20 | access to field Item1 | access to field Item1 |
|
||||
| Tuples.cs:5:21:5:34 | "taint source" : String | Tuples.cs:5:21:5:34 | "taint source" : String | Tuples.cs:22:14:22:16 | access to field Item1 | $@ | Tuples.cs:22:14:22:16 | access to field Item1 | access to field Item1 |
|
||||
| Tuples.cs:5:41:5:54 | "taint source" : String | Tuples.cs:5:41:5:54 | "taint source" : String | Tuples.cs:9:14:9:14 | access to local variable c | $@ | Tuples.cs:9:14:9:14 | access to local variable c | access to local variable c |
|
||||
| Tuples.cs:5:41:5:54 | "taint source" : String | Tuples.cs:5:41:5:54 | "taint source" : String | Tuples.cs:14:14:14:14 | access to local variable c | $@ | Tuples.cs:14:14:14:14 | access to local variable c | access to local variable c |
|
||||
| Tuples.cs:5:41:5:54 | "taint source" : String | Tuples.cs:5:41:5:54 | "taint source" : String | Tuples.cs:19:14:19:20 | access to field Item2 | $@ | Tuples.cs:19:14:19:20 | access to field Item2 | access to field Item2 |
|
||||
| Tuples.cs:5:41:5:54 | "taint source" : String | Tuples.cs:5:41:5:54 | "taint source" : String | Tuples.cs:24:14:24:26 | access to field Item2 | $@ | Tuples.cs:24:14:24:26 | access to field Item2 | access to field Item2 |
|
||||
| Tuples.cs:7:21:7:34 | "taint source" : String | Tuples.cs:7:21:7:34 | "taint source" : String | Tuples.cs:9:14:9:14 | access to local variable a | $@ | Tuples.cs:9:14:9:14 | access to local variable a | access to local variable a |
|
||||
| Tuples.cs:7:21:7:34 | "taint source" : String | Tuples.cs:7:21:7:34 | "taint source" : String | Tuples.cs:14:14:14:14 | access to local variable a | $@ | Tuples.cs:14:14:14:14 | access to local variable a | access to local variable a |
|
||||
| Tuples.cs:7:21:7:34 | "taint source" : String | Tuples.cs:7:21:7:34 | "taint source" : String | Tuples.cs:19:14:19:14 | access to local variable p | $@ | Tuples.cs:19:14:19:14 | access to local variable p | access to local variable p |
|
||||
| Tuples.cs:7:21:7:34 | "taint source" : String | Tuples.cs:7:21:7:34 | "taint source" : String | Tuples.cs:23:14:23:20 | access to field Item1 | $@ | Tuples.cs:23:14:23:20 | access to field Item1 | access to field Item1 |
|
||||
| Tuples.cs:7:21:7:34 | "taint source" : String | Tuples.cs:7:21:7:34 | "taint source" : String | Tuples.cs:24:14:24:16 | access to field Item1 | $@ | Tuples.cs:24:14:24:16 | access to field Item1 | access to field Item1 |
|
||||
| Tuples.cs:7:41:7:54 | "taint source" : String | Tuples.cs:7:41:7:54 | "taint source" : String | Tuples.cs:11:14:11:14 | access to local variable c | $@ | Tuples.cs:11:14:11:14 | access to local variable c | access to local variable c |
|
||||
| Tuples.cs:7:41:7:54 | "taint source" : String | Tuples.cs:7:41:7:54 | "taint source" : String | Tuples.cs:16:14:16:14 | access to local variable c | $@ | Tuples.cs:16:14:16:14 | access to local variable c | access to local variable c |
|
||||
| Tuples.cs:7:41:7:54 | "taint source" : String | Tuples.cs:7:41:7:54 | "taint source" : String | Tuples.cs:21:14:21:20 | access to field Item2 | $@ | Tuples.cs:21:14:21:20 | access to field Item2 | access to field Item2 |
|
||||
| Tuples.cs:7:41:7:54 | "taint source" : String | Tuples.cs:7:41:7:54 | "taint source" : String | Tuples.cs:26:14:26:26 | access to field Item2 | $@ | Tuples.cs:26:14:26:26 | access to field Item2 | access to field Item2 |
|
||||
| Tuples.cs:31:18:31:31 | "taint source" : String | Tuples.cs:31:18:31:31 | "taint source" : String | Tuples.cs:32:14:32:20 | access to field Item1 | $@ | Tuples.cs:32:14:32:20 | access to field Item1 | access to field Item1 |
|
||||
| Tuples.cs:31:58:31:71 | "taint source" : String | Tuples.cs:31:58:31:71 | "taint source" : String | Tuples.cs:34:14:34:21 | access to field Item10 | $@ | Tuples.cs:34:14:34:21 | access to field Item10 | access to field Item10 |
|
||||
| Tuples.cs:39:48:39:61 | "taint source" : String | Tuples.cs:39:48:39:61 | "taint source" : String | Tuples.cs:40:14:40:20 | access to field Item1 | $@ | Tuples.cs:40:14:40:20 | access to field Item1 | access to field Item1 |
|
||||
| Tuples.cs:66:24:66:37 | "taint source" : String | Tuples.cs:66:24:66:37 | "taint source" : String | Tuples.cs:67:14:67:16 | access to property i | $@ | Tuples.cs:67:14:67:16 | access to property i | access to property i |
|
||||
|
||||
Reference in New Issue
Block a user