C#: Add indirect assignment example.

This commit is contained in:
Michael Nebel
2024-02-13 12:02:25 +01:00
parent eaf129d519
commit 8efe34942f
2 changed files with 137 additions and 118 deletions

View File

@@ -1,4 +1,5 @@
testFailures
| Constructors.cs:101:25:101:43 | // ... | Missing result:hasValueFlow=5 |
edges
| Constructors.cs:5:24:5:25 | [post] this access : C_no_ctor [field s1] : Object | Constructors.cs:9:27:9:41 | object creation of type C_no_ctor : C_no_ctor [field s1] : Object | provenance | |
| Constructors.cs:5:24:5:25 | [post] this access : C_no_ctor [field s1] : Object | Constructors.cs:9:27:9:41 | object creation of type C_no_ctor : C_no_ctor [field s1] : Object | provenance | |
@@ -40,56 +41,56 @@ edges
| Constructors.cs:50:32:50:36 | this access : C2 [field Obj21] : Object | Constructors.cs:50:32:50:36 | access to field Obj21 : Object | provenance | |
| Constructors.cs:52:35:52:35 | o : Object | Constructors.cs:54:24:54:24 | access to parameter o : Object | provenance | |
| Constructors.cs:52:35:52:35 | o : Object | Constructors.cs:54:24:54:24 | access to parameter o : Object | provenance | |
| Constructors.cs:60:17:60:33 | call to method Source<Object> : Object | Constructors.cs:61:25:61:25 | access to local variable o : Object | provenance | |
| Constructors.cs:60:17:60:33 | call to method Source<Object> : Object | Constructors.cs:61:25:61:25 | access to local variable o : Object | provenance | |
| Constructors.cs:61:18:61:26 | object creation of type C1 : C1 [field Obj] : Object | Constructors.cs:62:14:62:15 | access to local variable c1 : C1 [field Obj] : Object | provenance | |
| Constructors.cs:61:18:61:26 | object creation of type C1 : C1 [field Obj] : Object | Constructors.cs:62:14:62:15 | access to local variable c1 : C1 [field Obj] : Object | provenance | |
| Constructors.cs:61:25:61:25 | access to local variable o : Object | Constructors.cs:41:26:41:26 | o : Object | provenance | |
| Constructors.cs:61:25:61:25 | access to local variable o : Object | Constructors.cs:41:26:41:26 | o : Object | provenance | |
| Constructors.cs:61:25:61:25 | access to local variable o : Object | Constructors.cs:61:18:61:26 | object creation of type C1 : C1 [field Obj] : Object | provenance | |
| Constructors.cs:61:25:61:25 | access to local variable o : Object | Constructors.cs:61:18:61:26 | object creation of type C1 : C1 [field Obj] : Object | provenance | |
| Constructors.cs:62:14:62:15 | access to local variable c1 : C1 [field Obj] : Object | Constructors.cs:62:14:62:19 | access to field Obj | provenance | |
| Constructors.cs:62:14:62:15 | access to local variable c1 : C1 [field Obj] : Object | Constructors.cs:62:14:62:19 | access to field Obj | provenance | |
| Constructors.cs:67:19:67:35 | call to method Source<Object> : Object | Constructors.cs:69:25:69:27 | access to local variable o21 : Object | provenance | |
| Constructors.cs:67:19:67:35 | call to method Source<Object> : Object | Constructors.cs:69:25:69:27 | access to local variable o21 : Object | provenance | |
| Constructors.cs:68:19:68:35 | call to method Source<Object> : Object | Constructors.cs:69:30:69:32 | access to local variable o22 : Object | provenance | |
| Constructors.cs:68:19:68:35 | call to method Source<Object> : Object | Constructors.cs:69:30:69:32 | access to local variable o22 : Object | provenance | |
| Constructors.cs:69:18:69:33 | object creation of type C2 : C2 [field Obj21] : Object | Constructors.cs:70:14:70:15 | access to local variable c2 : C2 [field Obj21] : Object | provenance | |
| Constructors.cs:69:18:69:33 | object creation of type C2 : C2 [field Obj21] : Object | Constructors.cs:70:14:70:15 | access to local variable c2 : C2 [field Obj21] : Object | provenance | |
| Constructors.cs:69:18:69:33 | object creation of type C2 : C2 [field Obj21] : Object | Constructors.cs:72:14:72:15 | access to local variable c2 : C2 [field Obj21] : Object | provenance | |
| Constructors.cs:69:18:69:33 | object creation of type C2 : C2 [field Obj21] : Object | Constructors.cs:72:14:72:15 | access to local variable c2 : C2 [field Obj21] : Object | provenance | |
| Constructors.cs:69:18:69:33 | object creation of type C2 : C2 [parameter o22param] : Object | Constructors.cs:71:14:71:15 | access to local variable c2 : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:69:18:69:33 | object creation of type C2 : C2 [parameter o22param] : Object | Constructors.cs:71:14:71:15 | access to local variable c2 : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:69:25:69:27 | access to local variable o21 : Object | Constructors.cs:44:28:44:35 | o21param : Object | provenance | |
| Constructors.cs:69:25:69:27 | access to local variable o21 : Object | Constructors.cs:44:28:44:35 | o21param : Object | provenance | |
| Constructors.cs:69:25:69:27 | access to local variable o21 : Object | Constructors.cs:69:18:69:33 | object creation of type C2 : C2 [field Obj21] : Object | provenance | |
| Constructors.cs:69:25:69:27 | access to local variable o21 : Object | Constructors.cs:69:18:69:33 | object creation of type C2 : C2 [field Obj21] : Object | provenance | |
| Constructors.cs:69:30:69:32 | access to local variable o22 : Object | Constructors.cs:44:45:44:52 | o22param : Object | provenance | |
| Constructors.cs:69:30:69:32 | access to local variable o22 : Object | Constructors.cs:44:45:44:52 | o22param : Object | provenance | |
| Constructors.cs:69:30:69:32 | access to local variable o22 : Object | Constructors.cs:69:18:69:33 | object creation of type C2 : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:69:30:69:32 | access to local variable o22 : Object | Constructors.cs:69:18:69:33 | object creation of type C2 : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:70:14:70:15 | access to local variable c2 : C2 [field Obj21] : Object | Constructors.cs:70:14:70:21 | access to field Obj21 | provenance | |
| Constructors.cs:70:14:70:15 | access to local variable c2 : C2 [field Obj21] : Object | Constructors.cs:70:14:70:21 | access to field Obj21 | provenance | |
| Constructors.cs:71:14:71:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:71:14:71:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:71:14:71:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:71:14:71:21 | access to property Obj22 | provenance | |
| Constructors.cs:71:14:71:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:71:14:71:21 | access to property Obj22 | provenance | |
| Constructors.cs:72:14:72:15 | access to local variable c2 : C2 [field Obj21] : Object | Constructors.cs:50:32:50:36 | this : C2 [field Obj21] : Object | provenance | |
| Constructors.cs:72:14:72:15 | access to local variable c2 : C2 [field Obj21] : Object | Constructors.cs:50:32:50:36 | this : C2 [field Obj21] : Object | provenance | |
| Constructors.cs:72:14:72:15 | access to local variable c2 : C2 [field Obj21] : Object | Constructors.cs:72:14:72:21 | access to property Obj23 | provenance | |
| Constructors.cs:72:14:72:15 | access to local variable c2 : C2 [field Obj21] : Object | Constructors.cs:72:14:72:21 | access to property Obj23 | provenance | |
| Constructors.cs:81:21:81:37 | call to method Source<Object> : Object | Constructors.cs:82:19:82:23 | access to local variable taint : Object | provenance | |
| Constructors.cs:81:21:81:37 | call to method Source<Object> : Object | Constructors.cs:82:19:82:23 | access to local variable taint : Object | provenance | |
| Constructors.cs:82:9:82:10 | [post] access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:83:14:83:15 | access to local variable c2 : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:82:9:82:10 | [post] access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:83:14:83:15 | access to local variable c2 : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:82:19:82:23 | access to local variable taint : Object | Constructors.cs:52:35:52:35 | o : Object | provenance | |
| Constructors.cs:82:19:82:23 | access to local variable taint : Object | Constructors.cs:52:35:52:35 | o : Object | provenance | |
| Constructors.cs:82:19:82:23 | access to local variable taint : Object | Constructors.cs:82:9:82:10 | [post] access to local variable c2 : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:82:19:82:23 | access to local variable taint : Object | Constructors.cs:82:9:82:10 | [post] access to local variable c2 : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:83:14:83:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:83:14:83:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:83:14:83:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:83:14:83:21 | access to property Obj22 | provenance | |
| Constructors.cs:83:14:83:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:83:14:83:21 | access to property Obj22 | provenance | |
| Constructors.cs:70:17:70:33 | call to method Source<Object> : Object | Constructors.cs:71:25:71:25 | access to local variable o : Object | provenance | |
| Constructors.cs:70:17:70:33 | call to method Source<Object> : Object | Constructors.cs:71:25:71:25 | access to local variable o : Object | provenance | |
| Constructors.cs:71:18:71:26 | object creation of type C1 : C1 [field Obj] : Object | Constructors.cs:72:14:72:15 | access to local variable c1 : C1 [field Obj] : Object | provenance | |
| Constructors.cs:71:18:71:26 | object creation of type C1 : C1 [field Obj] : Object | Constructors.cs:72:14:72:15 | access to local variable c1 : C1 [field Obj] : Object | provenance | |
| Constructors.cs:71:25:71:25 | access to local variable o : Object | Constructors.cs:41:26:41:26 | o : Object | provenance | |
| Constructors.cs:71:25:71:25 | access to local variable o : Object | Constructors.cs:41:26:41:26 | o : Object | provenance | |
| Constructors.cs:71:25:71:25 | access to local variable o : Object | Constructors.cs:71:18:71:26 | object creation of type C1 : C1 [field Obj] : Object | provenance | |
| Constructors.cs:71:25:71:25 | access to local variable o : Object | Constructors.cs:71:18:71:26 | object creation of type C1 : C1 [field Obj] : Object | provenance | |
| Constructors.cs:72:14:72:15 | access to local variable c1 : C1 [field Obj] : Object | Constructors.cs:72:14:72:19 | access to field Obj | provenance | |
| Constructors.cs:72:14:72:15 | access to local variable c1 : C1 [field Obj] : Object | Constructors.cs:72:14:72:19 | access to field Obj | provenance | |
| Constructors.cs:77:19:77:35 | call to method Source<Object> : Object | Constructors.cs:79:25:79:27 | access to local variable o21 : Object | provenance | |
| Constructors.cs:77:19:77:35 | call to method Source<Object> : Object | Constructors.cs:79:25:79:27 | access to local variable o21 : Object | provenance | |
| Constructors.cs:78:19:78:35 | call to method Source<Object> : Object | Constructors.cs:79:30:79:32 | access to local variable o22 : Object | provenance | |
| Constructors.cs:78:19:78:35 | call to method Source<Object> : Object | Constructors.cs:79:30:79:32 | access to local variable o22 : Object | provenance | |
| Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [field Obj21] : Object | Constructors.cs:80:14:80:15 | access to local variable c2 : C2 [field Obj21] : Object | provenance | |
| Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [field Obj21] : Object | Constructors.cs:80:14:80:15 | access to local variable c2 : C2 [field Obj21] : Object | provenance | |
| Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [field Obj21] : Object | Constructors.cs:82:14:82:15 | access to local variable c2 : C2 [field Obj21] : Object | provenance | |
| Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [field Obj21] : Object | Constructors.cs:82:14:82:15 | access to local variable c2 : C2 [field Obj21] : Object | provenance | |
| Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [parameter o22param] : Object | Constructors.cs:81:14:81:15 | access to local variable c2 : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [parameter o22param] : Object | Constructors.cs:81:14:81:15 | access to local variable c2 : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:79:25:79:27 | access to local variable o21 : Object | Constructors.cs:44:28:44:35 | o21param : Object | provenance | |
| Constructors.cs:79:25:79:27 | access to local variable o21 : Object | Constructors.cs:44:28:44:35 | o21param : Object | provenance | |
| Constructors.cs:79:25:79:27 | access to local variable o21 : Object | Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [field Obj21] : Object | provenance | |
| Constructors.cs:79:25:79:27 | access to local variable o21 : Object | Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [field Obj21] : Object | provenance | |
| Constructors.cs:79:30:79:32 | access to local variable o22 : Object | Constructors.cs:44:45:44:52 | o22param : Object | provenance | |
| Constructors.cs:79:30:79:32 | access to local variable o22 : Object | Constructors.cs:44:45:44:52 | o22param : Object | provenance | |
| Constructors.cs:79:30:79:32 | access to local variable o22 : Object | Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:79:30:79:32 | access to local variable o22 : Object | Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:80:14:80:15 | access to local variable c2 : C2 [field Obj21] : Object | Constructors.cs:80:14:80:21 | access to field Obj21 | provenance | |
| Constructors.cs:80:14:80:15 | access to local variable c2 : C2 [field Obj21] : Object | Constructors.cs:80:14:80:21 | access to field Obj21 | provenance | |
| Constructors.cs:81:14:81:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:81:14:81:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:81:14:81:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:81:14:81:21 | access to property Obj22 | provenance | |
| Constructors.cs:81:14:81:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:81:14:81:21 | access to property Obj22 | provenance | |
| Constructors.cs:82:14:82:15 | access to local variable c2 : C2 [field Obj21] : Object | Constructors.cs:50:32:50:36 | this : C2 [field Obj21] : Object | provenance | |
| Constructors.cs:82:14:82:15 | access to local variable c2 : C2 [field Obj21] : Object | Constructors.cs:50:32:50:36 | this : C2 [field Obj21] : Object | provenance | |
| Constructors.cs:82:14:82:15 | access to local variable c2 : C2 [field Obj21] : Object | Constructors.cs:82:14:82:21 | access to property Obj23 | provenance | |
| Constructors.cs:82:14:82:15 | access to local variable c2 : C2 [field Obj21] : Object | Constructors.cs:82:14:82:21 | access to property Obj23 | provenance | |
| Constructors.cs:91:21:91:37 | call to method Source<Object> : Object | Constructors.cs:92:19:92:23 | access to local variable taint : Object | provenance | |
| Constructors.cs:91:21:91:37 | call to method Source<Object> : Object | Constructors.cs:92:19:92:23 | access to local variable taint : Object | provenance | |
| Constructors.cs:92:9:92:10 | [post] access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:93:14:93:15 | access to local variable c2 : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:92:9:92:10 | [post] access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:93:14:93:15 | access to local variable c2 : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:92:19:92:23 | access to local variable taint : Object | Constructors.cs:52:35:52:35 | o : Object | provenance | |
| Constructors.cs:92:19:92:23 | access to local variable taint : Object | Constructors.cs:52:35:52:35 | o : Object | provenance | |
| Constructors.cs:92:19:92:23 | access to local variable taint : Object | Constructors.cs:92:9:92:10 | [post] access to local variable c2 : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:92:19:92:23 | access to local variable taint : Object | Constructors.cs:92:9:92:10 | [post] access to local variable c2 : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:93:14:93:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:93:14:93:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | provenance | |
| Constructors.cs:93:14:93:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:93:14:93:21 | access to property Obj22 | provenance | |
| Constructors.cs:93:14:93:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:93:14:93:21 | access to property Obj22 | provenance | |
nodes
| Constructors.cs:5:24:5:25 | [post] this access : C_no_ctor [field s1] : Object | semmle.label | [post] this access : C_no_ctor [field s1] : Object |
| Constructors.cs:5:24:5:25 | [post] this access : C_no_ctor [field s1] : Object | semmle.label | [post] this access : C_no_ctor [field s1] : Object |
@@ -147,77 +148,77 @@ nodes
| Constructors.cs:52:35:52:35 | o : Object | semmle.label | o : Object |
| Constructors.cs:54:24:54:24 | access to parameter o : Object | semmle.label | access to parameter o : Object |
| Constructors.cs:54:24:54:24 | access to parameter o : Object | semmle.label | access to parameter o : Object |
| Constructors.cs:60:17:60:33 | call to method Source<Object> : Object | semmle.label | call to method Source<Object> : Object |
| Constructors.cs:60:17:60:33 | call to method Source<Object> : Object | semmle.label | call to method Source<Object> : Object |
| Constructors.cs:61:18:61:26 | object creation of type C1 : C1 [field Obj] : Object | semmle.label | object creation of type C1 : C1 [field Obj] : Object |
| Constructors.cs:61:18:61:26 | object creation of type C1 : C1 [field Obj] : Object | semmle.label | object creation of type C1 : C1 [field Obj] : Object |
| Constructors.cs:61:25:61:25 | access to local variable o : Object | semmle.label | access to local variable o : Object |
| Constructors.cs:61:25:61:25 | access to local variable o : Object | semmle.label | access to local variable o : Object |
| Constructors.cs:62:14:62:15 | access to local variable c1 : C1 [field Obj] : Object | semmle.label | access to local variable c1 : C1 [field Obj] : Object |
| Constructors.cs:62:14:62:15 | access to local variable c1 : C1 [field Obj] : Object | semmle.label | access to local variable c1 : C1 [field Obj] : Object |
| Constructors.cs:62:14:62:19 | access to field Obj | semmle.label | access to field Obj |
| Constructors.cs:62:14:62:19 | access to field Obj | semmle.label | access to field Obj |
| Constructors.cs:67:19:67:35 | call to method Source<Object> : Object | semmle.label | call to method Source<Object> : Object |
| Constructors.cs:67:19:67:35 | call to method Source<Object> : Object | semmle.label | call to method Source<Object> : Object |
| Constructors.cs:68:19:68:35 | call to method Source<Object> : Object | semmle.label | call to method Source<Object> : Object |
| Constructors.cs:68:19:68:35 | call to method Source<Object> : Object | semmle.label | call to method Source<Object> : Object |
| Constructors.cs:69:18:69:33 | object creation of type C2 : C2 [field Obj21] : Object | semmle.label | object creation of type C2 : C2 [field Obj21] : Object |
| Constructors.cs:69:18:69:33 | object creation of type C2 : C2 [field Obj21] : Object | semmle.label | object creation of type C2 : C2 [field Obj21] : Object |
| Constructors.cs:69:18:69:33 | object creation of type C2 : C2 [parameter o22param] : Object | semmle.label | object creation of type C2 : C2 [parameter o22param] : Object |
| Constructors.cs:69:18:69:33 | object creation of type C2 : C2 [parameter o22param] : Object | semmle.label | object creation of type C2 : C2 [parameter o22param] : Object |
| Constructors.cs:69:25:69:27 | access to local variable o21 : Object | semmle.label | access to local variable o21 : Object |
| Constructors.cs:69:25:69:27 | access to local variable o21 : Object | semmle.label | access to local variable o21 : Object |
| Constructors.cs:69:30:69:32 | access to local variable o22 : Object | semmle.label | access to local variable o22 : Object |
| Constructors.cs:69:30:69:32 | access to local variable o22 : Object | semmle.label | access to local variable o22 : Object |
| Constructors.cs:70:14:70:15 | access to local variable c2 : C2 [field Obj21] : Object | semmle.label | access to local variable c2 : C2 [field Obj21] : Object |
| Constructors.cs:70:14:70:15 | access to local variable c2 : C2 [field Obj21] : Object | semmle.label | access to local variable c2 : C2 [field Obj21] : Object |
| Constructors.cs:70:14:70:21 | access to field Obj21 | semmle.label | access to field Obj21 |
| Constructors.cs:70:14:70:21 | access to field Obj21 | semmle.label | access to field Obj21 |
| Constructors.cs:71:14:71:15 | access to local variable c2 : C2 [parameter o22param] : Object | semmle.label | access to local variable c2 : C2 [parameter o22param] : Object |
| Constructors.cs:71:14:71:15 | access to local variable c2 : C2 [parameter o22param] : Object | semmle.label | access to local variable c2 : C2 [parameter o22param] : Object |
| Constructors.cs:71:14:71:21 | access to property Obj22 | semmle.label | access to property Obj22 |
| Constructors.cs:71:14:71:21 | access to property Obj22 | semmle.label | access to property Obj22 |
| Constructors.cs:72:14:72:15 | access to local variable c2 : C2 [field Obj21] : Object | semmle.label | access to local variable c2 : C2 [field Obj21] : Object |
| Constructors.cs:72:14:72:15 | access to local variable c2 : C2 [field Obj21] : Object | semmle.label | access to local variable c2 : C2 [field Obj21] : Object |
| Constructors.cs:72:14:72:21 | access to property Obj23 | semmle.label | access to property Obj23 |
| Constructors.cs:72:14:72:21 | access to property Obj23 | semmle.label | access to property Obj23 |
| Constructors.cs:81:21:81:37 | call to method Source<Object> : Object | semmle.label | call to method Source<Object> : Object |
| Constructors.cs:81:21:81:37 | call to method Source<Object> : Object | semmle.label | call to method Source<Object> : Object |
| Constructors.cs:82:9:82:10 | [post] access to local variable c2 : C2 [parameter o22param] : Object | semmle.label | [post] access to local variable c2 : C2 [parameter o22param] : Object |
| Constructors.cs:82:9:82:10 | [post] access to local variable c2 : C2 [parameter o22param] : Object | semmle.label | [post] access to local variable c2 : C2 [parameter o22param] : Object |
| Constructors.cs:82:19:82:23 | access to local variable taint : Object | semmle.label | access to local variable taint : Object |
| Constructors.cs:82:19:82:23 | access to local variable taint : Object | semmle.label | access to local variable taint : Object |
| Constructors.cs:83:14:83:15 | access to local variable c2 : C2 [parameter o22param] : Object | semmle.label | access to local variable c2 : C2 [parameter o22param] : Object |
| Constructors.cs:83:14:83:15 | access to local variable c2 : C2 [parameter o22param] : Object | semmle.label | access to local variable c2 : C2 [parameter o22param] : Object |
| Constructors.cs:83:14:83:21 | access to property Obj22 | semmle.label | access to property Obj22 |
| Constructors.cs:83:14:83:21 | access to property Obj22 | semmle.label | access to property Obj22 |
| Constructors.cs:70:17:70:33 | call to method Source<Object> : Object | semmle.label | call to method Source<Object> : Object |
| Constructors.cs:70:17:70:33 | call to method Source<Object> : Object | semmle.label | call to method Source<Object> : Object |
| Constructors.cs:71:18:71:26 | object creation of type C1 : C1 [field Obj] : Object | semmle.label | object creation of type C1 : C1 [field Obj] : Object |
| Constructors.cs:71:18:71:26 | object creation of type C1 : C1 [field Obj] : Object | semmle.label | object creation of type C1 : C1 [field Obj] : Object |
| Constructors.cs:71:25:71:25 | access to local variable o : Object | semmle.label | access to local variable o : Object |
| Constructors.cs:71:25:71:25 | access to local variable o : Object | semmle.label | access to local variable o : Object |
| Constructors.cs:72:14:72:15 | access to local variable c1 : C1 [field Obj] : Object | semmle.label | access to local variable c1 : C1 [field Obj] : Object |
| Constructors.cs:72:14:72:15 | access to local variable c1 : C1 [field Obj] : Object | semmle.label | access to local variable c1 : C1 [field Obj] : Object |
| Constructors.cs:72:14:72:19 | access to field Obj | semmle.label | access to field Obj |
| Constructors.cs:72:14:72:19 | access to field Obj | semmle.label | access to field Obj |
| Constructors.cs:77:19:77:35 | call to method Source<Object> : Object | semmle.label | call to method Source<Object> : Object |
| Constructors.cs:77:19:77:35 | call to method Source<Object> : Object | semmle.label | call to method Source<Object> : Object |
| Constructors.cs:78:19:78:35 | call to method Source<Object> : Object | semmle.label | call to method Source<Object> : Object |
| Constructors.cs:78:19:78:35 | call to method Source<Object> : Object | semmle.label | call to method Source<Object> : Object |
| Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [field Obj21] : Object | semmle.label | object creation of type C2 : C2 [field Obj21] : Object |
| Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [field Obj21] : Object | semmle.label | object creation of type C2 : C2 [field Obj21] : Object |
| Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [parameter o22param] : Object | semmle.label | object creation of type C2 : C2 [parameter o22param] : Object |
| Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [parameter o22param] : Object | semmle.label | object creation of type C2 : C2 [parameter o22param] : Object |
| Constructors.cs:79:25:79:27 | access to local variable o21 : Object | semmle.label | access to local variable o21 : Object |
| Constructors.cs:79:25:79:27 | access to local variable o21 : Object | semmle.label | access to local variable o21 : Object |
| Constructors.cs:79:30:79:32 | access to local variable o22 : Object | semmle.label | access to local variable o22 : Object |
| Constructors.cs:79:30:79:32 | access to local variable o22 : Object | semmle.label | access to local variable o22 : Object |
| Constructors.cs:80:14:80:15 | access to local variable c2 : C2 [field Obj21] : Object | semmle.label | access to local variable c2 : C2 [field Obj21] : Object |
| Constructors.cs:80:14:80:15 | access to local variable c2 : C2 [field Obj21] : Object | semmle.label | access to local variable c2 : C2 [field Obj21] : Object |
| Constructors.cs:80:14:80:21 | access to field Obj21 | semmle.label | access to field Obj21 |
| Constructors.cs:80:14:80:21 | access to field Obj21 | semmle.label | access to field Obj21 |
| Constructors.cs:81:14:81:15 | access to local variable c2 : C2 [parameter o22param] : Object | semmle.label | access to local variable c2 : C2 [parameter o22param] : Object |
| Constructors.cs:81:14:81:15 | access to local variable c2 : C2 [parameter o22param] : Object | semmle.label | access to local variable c2 : C2 [parameter o22param] : Object |
| Constructors.cs:81:14:81:21 | access to property Obj22 | semmle.label | access to property Obj22 |
| Constructors.cs:81:14:81:21 | access to property Obj22 | semmle.label | access to property Obj22 |
| Constructors.cs:82:14:82:15 | access to local variable c2 : C2 [field Obj21] : Object | semmle.label | access to local variable c2 : C2 [field Obj21] : Object |
| Constructors.cs:82:14:82:15 | access to local variable c2 : C2 [field Obj21] : Object | semmle.label | access to local variable c2 : C2 [field Obj21] : Object |
| Constructors.cs:82:14:82:21 | access to property Obj23 | semmle.label | access to property Obj23 |
| Constructors.cs:82:14:82:21 | access to property Obj23 | semmle.label | access to property Obj23 |
| Constructors.cs:91:21:91:37 | call to method Source<Object> : Object | semmle.label | call to method Source<Object> : Object |
| Constructors.cs:91:21:91:37 | call to method Source<Object> : Object | semmle.label | call to method Source<Object> : Object |
| Constructors.cs:92:9:92:10 | [post] access to local variable c2 : C2 [parameter o22param] : Object | semmle.label | [post] access to local variable c2 : C2 [parameter o22param] : Object |
| Constructors.cs:92:9:92:10 | [post] access to local variable c2 : C2 [parameter o22param] : Object | semmle.label | [post] access to local variable c2 : C2 [parameter o22param] : Object |
| Constructors.cs:92:19:92:23 | access to local variable taint : Object | semmle.label | access to local variable taint : Object |
| Constructors.cs:92:19:92:23 | access to local variable taint : Object | semmle.label | access to local variable taint : Object |
| Constructors.cs:93:14:93:15 | access to local variable c2 : C2 [parameter o22param] : Object | semmle.label | access to local variable c2 : C2 [parameter o22param] : Object |
| Constructors.cs:93:14:93:15 | access to local variable c2 : C2 [parameter o22param] : Object | semmle.label | access to local variable c2 : C2 [parameter o22param] : Object |
| Constructors.cs:93:14:93:21 | access to property Obj22 | semmle.label | access to property Obj22 |
| Constructors.cs:93:14:93:21 | access to property Obj22 | semmle.label | access to property Obj22 |
subpaths
| Constructors.cs:61:25:61:25 | access to local variable o : Object | Constructors.cs:41:26:41:26 | o : Object | Constructors.cs:41:32:41:34 | [post] this access : C1 [field Obj] : Object | Constructors.cs:61:18:61:26 | object creation of type C1 : C1 [field Obj] : Object |
| Constructors.cs:61:25:61:25 | access to local variable o : Object | Constructors.cs:41:26:41:26 | o : Object | Constructors.cs:41:32:41:34 | [post] this access : C1 [field Obj] : Object | Constructors.cs:61:18:61:26 | object creation of type C1 : C1 [field Obj] : Object |
| Constructors.cs:69:25:69:27 | access to local variable o21 : Object | Constructors.cs:44:28:44:35 | o21param : Object | Constructors.cs:46:23:46:27 | [post] this access : C2 [field Obj21] : Object | Constructors.cs:69:18:69:33 | object creation of type C2 : C2 [field Obj21] : Object |
| Constructors.cs:69:25:69:27 | access to local variable o21 : Object | Constructors.cs:44:28:44:35 | o21param : Object | Constructors.cs:46:23:46:27 | [post] this access : C2 [field Obj21] : Object | Constructors.cs:69:18:69:33 | object creation of type C2 : C2 [field Obj21] : Object |
| Constructors.cs:69:30:69:32 | access to local variable o22 : Object | Constructors.cs:44:45:44:52 | o22param : Object | Constructors.cs:44:45:44:52 | o22param : Object | Constructors.cs:69:18:69:33 | object creation of type C2 : C2 [parameter o22param] : Object |
| Constructors.cs:69:30:69:32 | access to local variable o22 : Object | Constructors.cs:44:45:44:52 | o22param : Object | Constructors.cs:44:45:44:52 | o22param : Object | Constructors.cs:69:18:69:33 | object creation of type C2 : C2 [parameter o22param] : Object |
| Constructors.cs:71:14:71:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | access to parameter o22param : Object | Constructors.cs:71:14:71:21 | access to property Obj22 |
| Constructors.cs:71:14:71:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | access to parameter o22param : Object | Constructors.cs:71:14:71:21 | access to property Obj22 |
| Constructors.cs:72:14:72:15 | access to local variable c2 : C2 [field Obj21] : Object | Constructors.cs:50:32:50:36 | this : C2 [field Obj21] : Object | Constructors.cs:50:32:50:36 | access to field Obj21 : Object | Constructors.cs:72:14:72:21 | access to property Obj23 |
| Constructors.cs:72:14:72:15 | access to local variable c2 : C2 [field Obj21] : Object | Constructors.cs:50:32:50:36 | this : C2 [field Obj21] : Object | Constructors.cs:50:32:50:36 | access to field Obj21 : Object | Constructors.cs:72:14:72:21 | access to property Obj23 |
| Constructors.cs:82:19:82:23 | access to local variable taint : Object | Constructors.cs:52:35:52:35 | o : Object | Constructors.cs:54:24:54:24 | access to parameter o : Object | Constructors.cs:82:9:82:10 | [post] access to local variable c2 : C2 [parameter o22param] : Object |
| Constructors.cs:82:19:82:23 | access to local variable taint : Object | Constructors.cs:52:35:52:35 | o : Object | Constructors.cs:54:24:54:24 | access to parameter o : Object | Constructors.cs:82:9:82:10 | [post] access to local variable c2 : C2 [parameter o22param] : Object |
| Constructors.cs:83:14:83:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | access to parameter o22param : Object | Constructors.cs:83:14:83:21 | access to property Obj22 |
| Constructors.cs:83:14:83:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | access to parameter o22param : Object | Constructors.cs:83:14:83:21 | access to property Obj22 |
| Constructors.cs:71:25:71:25 | access to local variable o : Object | Constructors.cs:41:26:41:26 | o : Object | Constructors.cs:41:32:41:34 | [post] this access : C1 [field Obj] : Object | Constructors.cs:71:18:71:26 | object creation of type C1 : C1 [field Obj] : Object |
| Constructors.cs:71:25:71:25 | access to local variable o : Object | Constructors.cs:41:26:41:26 | o : Object | Constructors.cs:41:32:41:34 | [post] this access : C1 [field Obj] : Object | Constructors.cs:71:18:71:26 | object creation of type C1 : C1 [field Obj] : Object |
| Constructors.cs:79:25:79:27 | access to local variable o21 : Object | Constructors.cs:44:28:44:35 | o21param : Object | Constructors.cs:46:23:46:27 | [post] this access : C2 [field Obj21] : Object | Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [field Obj21] : Object |
| Constructors.cs:79:25:79:27 | access to local variable o21 : Object | Constructors.cs:44:28:44:35 | o21param : Object | Constructors.cs:46:23:46:27 | [post] this access : C2 [field Obj21] : Object | Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [field Obj21] : Object |
| Constructors.cs:79:30:79:32 | access to local variable o22 : Object | Constructors.cs:44:45:44:52 | o22param : Object | Constructors.cs:44:45:44:52 | o22param : Object | Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [parameter o22param] : Object |
| Constructors.cs:79:30:79:32 | access to local variable o22 : Object | Constructors.cs:44:45:44:52 | o22param : Object | Constructors.cs:44:45:44:52 | o22param : Object | Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [parameter o22param] : Object |
| Constructors.cs:81:14:81:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | access to parameter o22param : Object | Constructors.cs:81:14:81:21 | access to property Obj22 |
| Constructors.cs:81:14:81:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | access to parameter o22param : Object | Constructors.cs:81:14:81:21 | access to property Obj22 |
| Constructors.cs:82:14:82:15 | access to local variable c2 : C2 [field Obj21] : Object | Constructors.cs:50:32:50:36 | this : C2 [field Obj21] : Object | Constructors.cs:50:32:50:36 | access to field Obj21 : Object | Constructors.cs:82:14:82:21 | access to property Obj23 |
| Constructors.cs:82:14:82:15 | access to local variable c2 : C2 [field Obj21] : Object | Constructors.cs:50:32:50:36 | this : C2 [field Obj21] : Object | Constructors.cs:50:32:50:36 | access to field Obj21 : Object | Constructors.cs:82:14:82:21 | access to property Obj23 |
| Constructors.cs:92:19:92:23 | access to local variable taint : Object | Constructors.cs:52:35:52:35 | o : Object | Constructors.cs:54:24:54:24 | access to parameter o : Object | Constructors.cs:92:9:92:10 | [post] access to local variable c2 : C2 [parameter o22param] : Object |
| Constructors.cs:92:19:92:23 | access to local variable taint : Object | Constructors.cs:52:35:52:35 | o : Object | Constructors.cs:54:24:54:24 | access to parameter o : Object | Constructors.cs:92:9:92:10 | [post] access to local variable c2 : C2 [parameter o22param] : Object |
| Constructors.cs:93:14:93:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | access to parameter o22param : Object | Constructors.cs:93:14:93:21 | access to property Obj22 |
| Constructors.cs:93:14:93:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | access to parameter o22param : Object | Constructors.cs:93:14:93:21 | access to property Obj22 |
#select
| Constructors.cs:15:18:15:19 | access to field s1 | Constructors.cs:5:29:5:45 | call to method Source<Object> : Object | Constructors.cs:15:18:15:19 | access to field s1 | $@ | Constructors.cs:5:29:5:45 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:15:18:15:19 | access to field s1 | Constructors.cs:5:29:5:45 | call to method Source<Object> : Object | Constructors.cs:15:18:15:19 | access to field s1 | $@ | Constructors.cs:5:29:5:45 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:33:18:33:19 | access to field s1 | Constructors.cs:21:29:21:45 | call to method Source<Object> : Object | Constructors.cs:33:18:33:19 | access to field s1 | $@ | Constructors.cs:21:29:21:45 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:33:18:33:19 | access to field s1 | Constructors.cs:21:29:21:45 | call to method Source<Object> : Object | Constructors.cs:33:18:33:19 | access to field s1 | $@ | Constructors.cs:21:29:21:45 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:62:14:62:19 | access to field Obj | Constructors.cs:60:17:60:33 | call to method Source<Object> : Object | Constructors.cs:62:14:62:19 | access to field Obj | $@ | Constructors.cs:60:17:60:33 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:62:14:62:19 | access to field Obj | Constructors.cs:60:17:60:33 | call to method Source<Object> : Object | Constructors.cs:62:14:62:19 | access to field Obj | $@ | Constructors.cs:60:17:60:33 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:70:14:70:21 | access to field Obj21 | Constructors.cs:67:19:67:35 | call to method Source<Object> : Object | Constructors.cs:70:14:70:21 | access to field Obj21 | $@ | Constructors.cs:67:19:67:35 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:70:14:70:21 | access to field Obj21 | Constructors.cs:67:19:67:35 | call to method Source<Object> : Object | Constructors.cs:70:14:70:21 | access to field Obj21 | $@ | Constructors.cs:67:19:67:35 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:71:14:71:21 | access to property Obj22 | Constructors.cs:68:19:68:35 | call to method Source<Object> : Object | Constructors.cs:71:14:71:21 | access to property Obj22 | $@ | Constructors.cs:68:19:68:35 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:71:14:71:21 | access to property Obj22 | Constructors.cs:68:19:68:35 | call to method Source<Object> : Object | Constructors.cs:71:14:71:21 | access to property Obj22 | $@ | Constructors.cs:68:19:68:35 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:72:14:72:21 | access to property Obj23 | Constructors.cs:67:19:67:35 | call to method Source<Object> : Object | Constructors.cs:72:14:72:21 | access to property Obj23 | $@ | Constructors.cs:67:19:67:35 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:72:14:72:21 | access to property Obj23 | Constructors.cs:67:19:67:35 | call to method Source<Object> : Object | Constructors.cs:72:14:72:21 | access to property Obj23 | $@ | Constructors.cs:67:19:67:35 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:83:14:83:21 | access to property Obj22 | Constructors.cs:81:21:81:37 | call to method Source<Object> : Object | Constructors.cs:83:14:83:21 | access to property Obj22 | $@ | Constructors.cs:81:21:81:37 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:83:14:83:21 | access to property Obj22 | Constructors.cs:81:21:81:37 | call to method Source<Object> : Object | Constructors.cs:83:14:83:21 | access to property Obj22 | $@ | Constructors.cs:81:21:81:37 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:72:14:72:19 | access to field Obj | Constructors.cs:70:17:70:33 | call to method Source<Object> : Object | Constructors.cs:72:14:72:19 | access to field Obj | $@ | Constructors.cs:70:17:70:33 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:72:14:72:19 | access to field Obj | Constructors.cs:70:17:70:33 | call to method Source<Object> : Object | Constructors.cs:72:14:72:19 | access to field Obj | $@ | Constructors.cs:70:17:70:33 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:80:14:80:21 | access to field Obj21 | Constructors.cs:77:19:77:35 | call to method Source<Object> : Object | Constructors.cs:80:14:80:21 | access to field Obj21 | $@ | Constructors.cs:77:19:77:35 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:80:14:80:21 | access to field Obj21 | Constructors.cs:77:19:77:35 | call to method Source<Object> : Object | Constructors.cs:80:14:80:21 | access to field Obj21 | $@ | Constructors.cs:77:19:77:35 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:81:14:81:21 | access to property Obj22 | Constructors.cs:78:19:78:35 | call to method Source<Object> : Object | Constructors.cs:81:14:81:21 | access to property Obj22 | $@ | Constructors.cs:78:19:78:35 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:81:14:81:21 | access to property Obj22 | Constructors.cs:78:19:78:35 | call to method Source<Object> : Object | Constructors.cs:81:14:81:21 | access to property Obj22 | $@ | Constructors.cs:78:19:78:35 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:82:14:82:21 | access to property Obj23 | Constructors.cs:77:19:77:35 | call to method Source<Object> : Object | Constructors.cs:82:14:82:21 | access to property Obj23 | $@ | Constructors.cs:77:19:77:35 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:82:14:82:21 | access to property Obj23 | Constructors.cs:77:19:77:35 | call to method Source<Object> : Object | Constructors.cs:82:14:82:21 | access to property Obj23 | $@ | Constructors.cs:77:19:77:35 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:93:14:93:21 | access to property Obj22 | Constructors.cs:91:21:91:37 | call to method Source<Object> : Object | Constructors.cs:93:14:93:21 | access to property Obj22 | $@ | Constructors.cs:91:21:91:37 | call to method Source<Object> : Object | call to method Source<Object> : Object |
| Constructors.cs:93:14:93:21 | access to property Obj22 | Constructors.cs:91:21:91:37 | call to method Source<Object> : Object | Constructors.cs:93:14:93:21 | access to property Obj22 | $@ | Constructors.cs:91:21:91:37 | call to method Source<Object> : Object | call to method Source<Object> : Object |

View File

@@ -53,6 +53,16 @@ public class Constructors
{
o22param = o;
}
private void SetObjOut(out object o1, object o2)
{
o1 = o2;
}
public void SetObjViaOut(object o)
{
SetObjOut(out o22param, o);
}
}
public void M1()
@@ -83,6 +93,14 @@ public class Constructors
Sink(c2.Obj22); // $ hasValueFlow=4
}
public void M4()
{
var c2 = new C2(new object(), new object());
var taint = Source<object>(5);
c2.SetObjViaOut(taint);
Sink(c2.Obj22); // $ hasValueFlow=5
}
public static void Sink(object o) { }
public static T Source<T>(object source) => throw null;