@@ -13,43 +13,51 @@ public class BasicFlow
13
13
private string tainted ;
14
14
15
15
// summary=Models;BasicFlow;false;ReturnThis;(System.Object);;Argument[this];ReturnValue;value;df-generated
16
+ // contentbased-summary=Models;BasicFlow;false;ReturnThis;(System.Object);;Argument[this];ReturnValue;value;df-generated
16
17
public BasicFlow ReturnThis ( object input )
17
18
{
18
19
return this ;
19
20
}
20
21
21
22
// summary=Models;BasicFlow;false;ReturnParam0;(System.String,System.Object);;Argument[0];ReturnValue;taint;df-generated
23
+ // contentbased-summary=Models;BasicFlow;false;ReturnParam0;(System.String,System.Object);;Argument[0];ReturnValue;value;df-generated
22
24
public string ReturnParam0 ( string input0 , object input1 )
23
25
{
24
26
return input0 ;
25
27
}
26
28
27
29
// summary=Models;BasicFlow;false;ReturnParam1;(System.String,System.Object);;Argument[1];ReturnValue;taint;df-generated
30
+ // contentbased-summary=Models;BasicFlow;false;ReturnParam1;(System.String,System.Object);;Argument[1];ReturnValue;value;df-generated
28
31
public object ReturnParam1 ( string input0 , object input1 )
29
32
{
30
33
return input1 ;
31
34
}
32
35
33
36
// summary=Models;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[0];ReturnValue;taint;df-generated
34
37
// summary=Models;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[1];ReturnValue;taint;df-generated
38
+ // contentbased-summary=Models;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[0];ReturnValue;value;df-generated
39
+ // contentbased-summary=Models;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[1];ReturnValue;value;df-generated
35
40
public object ReturnParamMultiple ( object input0 , object input1 )
36
41
{
37
42
return ( System . DateTime . Now . DayOfWeek == System . DayOfWeek . Monday ) ? input0 : input1 ;
38
43
}
39
44
40
45
// summary=Models;BasicFlow;false;ReturnSubstring;(System.String);;Argument[0];ReturnValue;taint;df-generated
46
+ // contentbased-summary=Models;BasicFlow;false;ReturnSubstring;(System.String);;Argument[0];ReturnValue;taint;df-generated
41
47
public string ReturnSubstring ( string s )
42
48
{
43
49
return s . Substring ( 0 , 1 ) ;
44
50
}
45
51
46
52
// summary=Models;BasicFlow;false;SetField;(System.String);;Argument[0];Argument[this];taint;df-generated
53
+ // contentbased-summary=Models;BasicFlow;false;SetField;(System.String);;Argument[0];Argument[this].SyntheticField[Models.BasicFlow.tainted];value;df-generated
47
54
public void SetField ( string s )
48
55
{
49
56
tainted = s ;
50
57
}
51
58
52
59
// summary=Models;BasicFlow;false;ReturnField;();;Argument[this];ReturnValue;taint;df-generated
60
+ // contentbased-summary=Models;BasicFlow;false;ReturnField;();;Argument[this].SyntheticField[Models.BasicFlow.tainted];ReturnValue;value;df-generated
53
61
public string ReturnField ( )
54
62
{
55
63
return tainted ;
@@ -61,72 +69,84 @@ public class CollectionFlow
61
69
private string tainted ;
62
70
63
71
// summary=Models;CollectionFlow;false;ReturnArrayElement;(System.Object[]);;Argument[0].Element;ReturnValue;taint;df-generated
72
+ // contentbased-summary=Models;CollectionFlow;false;ReturnArrayElement;(System.Object[]);;Argument[0].Element;ReturnValue;value;df-generated
64
73
public object ReturnArrayElement ( object [ ] input )
65
74
{
66
75
return input [ 0 ] ;
67
76
}
68
77
69
78
// summary=Models;CollectionFlow;false;AssignToArray;(System.Object,System.Object[]);;Argument[0];Argument[1].Element;taint;df-generated
79
+ // contentbased-summary=Models;CollectionFlow;false;AssignToArray;(System.Object,System.Object[]);;Argument[0];Argument[1].Element;value;df-generated
70
80
public void AssignToArray ( object data , object [ ] target )
71
81
{
72
82
target [ 0 ] = data ;
73
83
}
74
84
75
85
// summary=Models;CollectionFlow;false;AssignFieldToArray;(System.Object[]);;Argument[this];Argument[0].Element;taint;df-generated
86
+ // contentbased-summary=Models;CollectionFlow;false;AssignFieldToArray;(System.Object[]);;Argument[this].SyntheticField[Models.CollectionFlow.tainted];Argument[0].Element;value;df-generated
76
87
public void AssignFieldToArray ( object [ ] target )
77
88
{
78
89
target [ 0 ] = tainted ;
79
90
}
80
91
81
92
// summary=Models;CollectionFlow;false;ReturnListElement;(System.Collections.Generic.List<System.Object>);;Argument[0].Element;ReturnValue;taint;df-generated
93
+ // contentbased-summary=Models;CollectionFlow;false;ReturnListElement;(System.Collections.Generic.List<System.Object>);;Argument[0].Element;ReturnValue;value;df-generated
82
94
public object ReturnListElement ( List < object > input )
83
95
{
84
96
return input [ 0 ] ;
85
97
}
86
98
87
99
// summary=Models;CollectionFlow;false;AddToList;(System.Collections.Generic.List<System.Object>,System.Object);;Argument[1];Argument[0].Element;taint;df-generated
100
+ // contentbased-summary=Models;CollectionFlow;false;AddToList;(System.Collections.Generic.List<System.Object>,System.Object);;Argument[1];Argument[0].Element;value;df-generated
88
101
public void AddToList ( List < object > input , object data )
89
102
{
90
103
input . Add ( data ) ;
91
104
}
92
105
93
106
// summary=Models;CollectionFlow;false;AddFieldToList;(System.Collections.Generic.List<System.String>);;Argument[this];Argument[0].Element;taint;df-generated
107
+ // contentbased-summary=Models;CollectionFlow;false;AddFieldToList;(System.Collections.Generic.List<System.String>);;Argument[this].SyntheticField[Models.CollectionFlow.tainted];Argument[0].Element;value;df-generated
94
108
public void AddFieldToList ( List < string > input )
95
109
{
96
110
input . Add ( tainted ) ;
97
111
}
98
112
99
113
// summary=Models;CollectionFlow;false;ReturnFieldInAList;();;Argument[this];ReturnValue;taint;df-generated
114
+ // contentbased-summary=Models;CollectionFlow;false;ReturnFieldInAList;();;Argument[this].SyntheticField[Models.CollectionFlow.tainted];ReturnValue.Element;value;df-generated
100
115
public List < string > ReturnFieldInAList ( )
101
116
{
102
117
return new List < string > { tainted } ;
103
118
}
104
119
105
- // summary=Models;CollectionFlow;false;ReturnComplexTypeArray;(System.String[]);;Argument[0].Element;ReturnValue;taint;df-generated
120
+ // SPURIOUS-summary=Models;CollectionFlow;false;ReturnComplexTypeArray;(System.String[]);;Argument[0].Element;ReturnValue;taint;df-generated
121
+ // contentbased-summary=Models;CollectionFlow;false;ReturnComplexTypeArray;(System.String[]);;Argument[0];ReturnValue;value;df-generated
106
122
public string [ ] ReturnComplexTypeArray ( string [ ] a )
107
123
{
108
124
return a ;
109
125
}
110
126
111
- // summary=Models;CollectionFlow;false;ReturnBulkTypeList;(System.Collections.Generic.List<System.Byte>);;Argument[0].Element;ReturnValue;taint;df-generated
127
+ // SPURIOUS-summary=Models;CollectionFlow;false;ReturnBulkTypeList;(System.Collections.Generic.List<System.Byte>);;Argument[0].Element;ReturnValue;taint;df-generated
128
+ // contentbased-summary=Models;CollectionFlow;false;ReturnBulkTypeList;(System.Collections.Generic.List<System.Byte>);;Argument[0];ReturnValue;value;df-generated
112
129
public List < byte > ReturnBulkTypeList ( List < byte > a )
113
130
{
114
131
return a ;
115
132
}
116
133
117
- // summary=Models;CollectionFlow;false;ReturnComplexTypeDictionary;(System.Collections.Generic.Dictionary<System.Int32,System.String>);;Argument[0].Element;ReturnValue;taint;df-generated
134
+ // SPURIOUS-summary=Models;CollectionFlow;false;ReturnComplexTypeDictionary;(System.Collections.Generic.Dictionary<System.Int32,System.String>);;Argument[0].Element;ReturnValue;taint;df-generated
135
+ // contentbased-summary=Models;CollectionFlow;false;ReturnComplexTypeDictionary;(System.Collections.Generic.Dictionary<System.Int32,System.String>);;Argument[0];ReturnValue;value;df-generated
118
136
public Dictionary < int , string > ReturnComplexTypeDictionary ( Dictionary < int , string > a )
119
137
{
120
138
return a ;
121
139
}
122
140
123
- // summary=Models;CollectionFlow;false;ReturnUntypedArray;(System.Array);;Argument[0].Element;ReturnValue;taint;df-generated
141
+ // SPURIOUS-summary=Models;CollectionFlow;false;ReturnUntypedArray;(System.Array);;Argument[0].Element;ReturnValue;taint;df-generated
142
+ // contentbased-summary=Models;CollectionFlow;false;ReturnUntypedArray;(System.Array);;Argument[0];ReturnValue;value;df-generated
124
143
public Array ReturnUntypedArray ( Array a )
125
144
{
126
145
return a ;
127
146
}
128
147
129
- // summary=Models;CollectionFlow;false;ReturnUntypedList;(System.Collections.IList);;Argument[0].Element;ReturnValue;taint;df-generated
148
+ // SPURIOUS-summary=Models;CollectionFlow;false;ReturnUntypedList;(System.Collections.IList);;Argument[0].Element;ReturnValue;taint;df-generated
149
+ // contentbased-summary=Models;CollectionFlow;false;ReturnUntypedList;(System.Collections.IList);;Argument[0];ReturnValue;value;df-generated
130
150
public IList ReturnUntypedList ( IList a )
131
151
{
132
152
return a ;
@@ -159,19 +179,22 @@ public class IEnumerableFlow
159
179
{
160
180
private string tainted ;
161
181
162
- // summary=Models;IEnumerableFlow;false;ReturnIEnumerable;(System.Collections.Generic.IEnumerable<System.String>);;Argument[0].Element;ReturnValue;taint;df-generated
182
+ // SPURIOUS-summary=Models;IEnumerableFlow;false;ReturnIEnumerable;(System.Collections.Generic.IEnumerable<System.String>);;Argument[0].Element;ReturnValue;taint;df-generated
183
+ // contentbased-summary=Models;IEnumerableFlow;false;ReturnIEnumerable;(System.Collections.Generic.IEnumerable<System.String>);;Argument[0];ReturnValue;value;df-generated
163
184
public IEnumerable < string > ReturnIEnumerable ( IEnumerable < string > input )
164
185
{
165
186
return input ;
166
187
}
167
188
168
189
// summary=Models;IEnumerableFlow;false;ReturnIEnumerableElement;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[0].Element;ReturnValue;taint;df-generated
190
+ // contentbased-summary=Models;IEnumerableFlow;false;ReturnIEnumerableElement;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[0].Element;ReturnValue;value;df-generated
169
191
public object ReturnIEnumerableElement ( IEnumerable < object > input )
170
192
{
171
193
return input . First ( ) ;
172
194
}
173
195
174
196
// summary=Models;IEnumerableFlow;false;ReturnFieldInIEnumerable;();;Argument[this];ReturnValue;taint;df-generated
197
+ // contentbased-summary=Models;IEnumerableFlow;false;ReturnFieldInIEnumerable;();;Argument[this].SyntheticField[Models.IEnumerableFlow.tainted];ReturnValue.Element;value;df-generated
175
198
public IEnumerable < string > ReturnFieldInIEnumerable ( )
176
199
{
177
200
return new List < string > { tainted } ;
@@ -183,42 +206,49 @@ public class GenericFlow<T>
183
206
private T tainted ;
184
207
185
208
// summary=Models;GenericFlow<T>;false;SetGenericField;(T);;Argument[0];Argument[this];taint;df-generated
209
+ // contentbased-summary=Models;GenericFlow<T>;false;SetGenericField;(T);;Argument[0];Argument[this].SyntheticField[Models.GenericFlow`1.tainted];value;df-generated
186
210
public void SetGenericField ( T t )
187
211
{
188
212
tainted = t ;
189
213
}
190
214
191
215
// summary=Models;GenericFlow<T>;false;ReturnGenericField;();;Argument[this];ReturnValue;taint;df-generated
216
+ // contentbased-summary=Models;GenericFlow<T>;false;ReturnGenericField;();;Argument[this].SyntheticField[Models.GenericFlow`1.tainted];ReturnValue;value;df-generated
192
217
public T ReturnGenericField ( )
193
218
{
194
219
return tainted ;
195
220
}
196
221
197
222
// summary=Models;GenericFlow<T>;false;AddFieldToGenericList;(System.Collections.Generic.List<T>);;Argument[this];Argument[0].Element;taint;df-generated
223
+ // contentbased-summary=Models;GenericFlow<T>;false;AddFieldToGenericList;(System.Collections.Generic.List<T>);;Argument[this].SyntheticField[Models.GenericFlow`1.tainted];Argument[0].Element;value;df-generated
198
224
public void AddFieldToGenericList ( List < T > input )
199
225
{
200
226
input . Add ( tainted ) ;
201
227
}
202
228
203
229
// summary=Models;GenericFlow<T>;false;ReturnFieldInGenericList;();;Argument[this];ReturnValue;taint;df-generated
230
+ // contentbased-summary=Models;GenericFlow<T>;false;ReturnFieldInGenericList;();;Argument[this].SyntheticField[Models.GenericFlow`1.tainted];ReturnValue.Element;value;df-generated
204
231
public List < T > ReturnFieldInGenericList ( )
205
232
{
206
233
return new List < T > { tainted } ;
207
234
}
208
235
209
236
// summary=Models;GenericFlow<T>;false;ReturnGenericParam<S>;(S);;Argument[0];ReturnValue;taint;df-generated
237
+ // contentbased-summary=Models;GenericFlow<T>;false;ReturnGenericParam<S>;(S);;Argument[0];ReturnValue;value;df-generated
210
238
public S ReturnGenericParam < S > ( S input )
211
239
{
212
240
return input ;
213
241
}
214
242
215
243
// summary=Models;GenericFlow<T>;false;ReturnGenericElement<S>;(System.Collections.Generic.List<S>);;Argument[0].Element;ReturnValue;taint;df-generated
244
+ // contentbased-summary=Models;GenericFlow<T>;false;ReturnGenericElement<S>;(System.Collections.Generic.List<S>);;Argument[0].Element;ReturnValue;value;df-generated
216
245
public S ReturnGenericElement < S > ( List < S > input )
217
246
{
218
247
return input [ 0 ] ;
219
248
}
220
249
221
250
// summary=Models;GenericFlow<T>;false;AddToGenericList<S>;(System.Collections.Generic.List<S>,S);;Argument[1];Argument[0].Element;taint;df-generated
251
+ // contentbased-summary=Models;GenericFlow<T>;false;AddToGenericList<S>;(System.Collections.Generic.List<S>,S);;Argument[1];Argument[0].Element;value;df-generated
222
252
public void AddToGenericList < S > ( List < S > input , S data )
223
253
{
224
254
input . Add ( data ) ;
@@ -228,6 +258,7 @@ public void AddToGenericList<S>(List<S> input, S data)
228
258
public abstract class BaseClassFlow
229
259
{
230
260
// summary=Models;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;taint;df-generated
261
+ // contentbased-summary=Models;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;value;df-generated
231
262
public virtual object ReturnParam ( object input )
232
263
{
233
264
return input ;
@@ -237,6 +268,7 @@ public virtual object ReturnParam(object input)
237
268
public class DerivedClass1Flow : BaseClassFlow
238
269
{
239
270
// summary=Models;DerivedClass1Flow;false;ReturnParam1;(System.String,System.String);;Argument[1];ReturnValue;taint;df-generated
271
+ // contentbased-summary=Models;DerivedClass1Flow;false;ReturnParam1;(System.String,System.String);;Argument[1];ReturnValue;value;df-generated
240
272
public string ReturnParam1 ( string input0 , string input1 )
241
273
{
242
274
return input1 ;
@@ -246,12 +278,14 @@ public string ReturnParam1(string input0, string input1)
246
278
public class DerivedClass2Flow : BaseClassFlow
247
279
{
248
280
// summary=Models;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;taint;df-generated
281
+ // contentbased-summary=Models;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;value;df-generated
249
282
public override object ReturnParam ( object input )
250
283
{
251
284
return input ;
252
285
}
253
286
254
287
// summary=Models;DerivedClass2Flow;false;ReturnParam0;(System.String,System.Int32);;Argument[0];ReturnValue;taint;df-generated
288
+ // contentbased-summary=Models;DerivedClass2Flow;false;ReturnParam0;(System.String,System.Int32);;Argument[0];ReturnValue;value;df-generated
255
289
public string ReturnParam0 ( string input0 , int input1 )
256
290
{
257
291
return input0 ;
@@ -263,13 +297,15 @@ public class OperatorFlow
263
297
public readonly object Field ;
264
298
265
299
// summary=Models;OperatorFlow;false;OperatorFlow;(System.Object);;Argument[0];Argument[this];taint;df-generated
300
+ // contentbased-summary=Models;OperatorFlow;false;OperatorFlow;(System.Object);;Argument[0];Argument[this].Field[Models.OperatorFlow.Field];value;df-generated
266
301
public OperatorFlow ( object o )
267
302
{
268
303
Field = o ;
269
304
}
270
305
271
306
// Flow Summary.
272
307
// summary=Models;OperatorFlow;false;op_Addition;(Models.OperatorFlow,Models.OperatorFlow);;Argument[0];ReturnValue;taint;df-generated
308
+ // contentbased-summary=Models;OperatorFlow;false;op_Addition;(Models.OperatorFlow,Models.OperatorFlow);;Argument[0];ReturnValue;value;df-generated
273
309
public static OperatorFlow operator + ( OperatorFlow a , OperatorFlow b )
274
310
{
275
311
return a ;
@@ -310,6 +346,7 @@ public override bool Equals(object obj)
310
346
}
311
347
312
348
// summary=Models;EqualsGetHashCodeNoFlow;false;Equals;(System.String);;Argument[0];ReturnValue;taint;df-generated
349
+ // contentbased-summary=Models;EqualsGetHashCodeNoFlow;false;Equals;(System.String);;Argument[0];ReturnValue;value;df-generated
313
350
public string Equals ( string s )
314
351
{
315
352
return s ;
@@ -327,12 +364,14 @@ public class Properties
327
364
private string tainted ;
328
365
329
366
// summary=Models;Properties;false;get_Prop1;();;Argument[this];ReturnValue;taint;df-generated
367
+ // contentbased-summary=Models;Properties;false;get_Prop1;();;Argument[this].SyntheticField[Models.Properties.tainted];ReturnValue;value;df-generated
330
368
public string Prop1
331
369
{
332
370
get { return tainted ; }
333
371
}
334
372
335
373
// summary=Models;Properties;false;set_Prop2;(System.String);;Argument[0];Argument[this];taint;df-generated
374
+ // contentbased-summary=Models;Properties;false;set_Prop2;(System.String);;Argument[0];Argument[this].SyntheticField[Models.Properties.tainted];value;df-generated
336
375
public string Prop2
337
376
{
338
377
set { tainted = value ; }
@@ -513,6 +552,7 @@ public abstract class BasePublic
513
552
public class AImplBasePublic : BasePublic
514
553
{
515
554
// summary=Models;Inheritance+BasePublic;true;Id;(System.String);;Argument[0];ReturnValue;taint;df-generated
555
+ // contentbased-summary=Models;Inheritance+BasePublic;true;Id;(System.String);;Argument[0];ReturnValue;value;df-generated
516
556
public override string Id ( string x )
517
557
{
518
558
return x ;
@@ -542,6 +582,7 @@ private abstract class C : IPublic2
542
582
public class BImpl : B
543
583
{
544
584
// summary=Models;Inheritance+IPublic1;true;Id;(System.String);;Argument[0];ReturnValue;taint;df-generated
585
+ // contentbased-summary=Models;Inheritance+IPublic1;true;Id;(System.String);;Argument[0];ReturnValue;value;df-generated
545
586
public override string Id ( string x )
546
587
{
547
588
return x ;
@@ -551,6 +592,7 @@ public override string Id(string x)
551
592
private class CImpl : C
552
593
{
553
594
// summary=Models;Inheritance+IPublic2;true;Id;(System.String);;Argument[0];ReturnValue;taint;df-generated
595
+ // contentbased-summary=Models;Inheritance+IPublic2;true;Id;(System.String);;Argument[0];ReturnValue;value;df-generated
554
596
public override string Id ( string x )
555
597
{
556
598
return x ;
@@ -572,6 +614,7 @@ public class DImpl : D
572
614
private string tainted ;
573
615
574
616
// summary=Models;Inheritance+IPublic3;true;get_Prop;();;Argument[this];ReturnValue;taint;df-generated
617
+ // contentbased-summary=Models;Inheritance+IPublic3;true;get_Prop;();;Argument[this].SyntheticField[Models.Inheritance+DImpl.tainted];ReturnValue;value;df-generated
575
618
public override string Prop { get { return tainted ; } }
576
619
}
577
620
}
@@ -586,12 +629,14 @@ public class C
586
629
}
587
630
588
631
// summary=Models;MemberFlow;false;M1;(Models.MemberFlow+C);;Argument[0];ReturnValue;taint;df-generated
632
+ // contentbased-summary=Models;MemberFlow;false;M1;(Models.MemberFlow+C);;Argument[0].Property[Models.MemberFlow+C.Prop];ReturnValue;value;df-generated
589
633
public string M1 ( C c )
590
634
{
591
635
return c . Prop ;
592
636
}
593
637
594
638
// summary=Models;MemberFlow;false;M2;(Models.MemberFlow+C);;Argument[0];ReturnValue;taint;df-generated
639
+ // contentbased-summary=Models;MemberFlow;false;M2;(Models.MemberFlow+C);;Argument[0].Field[Models.MemberFlow+C.Field];ReturnValue;value;df-generated
595
640
public string M2 ( C c )
596
641
{
597
642
return c . Field ;
0 commit comments