Skip to content

Commit 4eb1a3a

Browse files
committed
C#: Fixup queries and accept test changes.
1 parent 61aa6a6 commit 4eb1a3a

File tree

6 files changed

+32
-35
lines changed

6 files changed

+32
-35
lines changed

csharp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@
99
import internal.CaptureModels
1010

1111
from DataFlowSummaryTargetApi api, string flow
12-
where flow = ContentSensitive::captureFlow(api, _)
12+
where flow = ContentSensitive::captureFlow(api, _, _)
1313
select flow order by flow

csharp/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import PartialFlow::PartialPathGraph
1414

1515
int explorationLimit() { result = 3 }
1616

17-
module PartialFlow = Heuristic::PropagateFlow::FlowExplorationFwd<explorationLimit/0>;
17+
module PartialFlow = Heuristic::PropagateTaintFlow::FlowExplorationFwd<explorationLimit/0>;
1818

1919
from
2020
PartialFlow::PartialPathNode source, PartialFlow::PartialPathNode sink,

csharp/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql

+5-5
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@
1111
import csharp
1212
import utils.modelgenerator.internal.CaptureModels
1313
import Heuristic
14-
import PropagateFlow::PathGraph
14+
import PropagateTaintFlow::PathGraph
1515

1616
from
17-
PropagateFlow::PathNode source, PropagateFlow::PathNode sink, DataFlowSummaryTargetApi api,
18-
DataFlow::Node p, DataFlow::Node returnNodeExt
17+
PropagateTaintFlow::PathNode source, PropagateTaintFlow::PathNode sink,
18+
DataFlowSummaryTargetApi api, DataFlow::Node p, DataFlow::Node returnNodeExt
1919
where
20-
PropagateFlow::flowPath(source, sink) and
20+
PropagateTaintFlow::flowPath(source, sink) and
2121
p = source.getNode() and
2222
returnNodeExt = sink.getNode() and
23-
exists(captureThroughFlow0(api, p, returnNodeExt))
23+
captureThroughFlow0(api, p, returnNodeExt)
2424
select sink.getNode(), source, sink, "There is flow from $@ to the $@.", source.getNode(),
2525
"parameter", sink.getNode(), "return value"

csharp/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import utils.modelgenerator.internal.CaptureModels
33
import utils.test.InlineMadTest
44

55
module InlineMadTestConfig implements InlineMadTestConfigSig {
6-
string getCapturedModel(Callable c) { result = ContentSensitive::captureFlow(c, _) }
6+
string getCapturedModel(Callable c) { result = ContentSensitive::captureFlow(c, _, _) }
77

88
string getKind() { result = "contentbased-summary" }
99
}

csharp/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import utils.modelgenerator.internal.CaptureModels
33
import utils.test.InlineMadTest
44

55
module InlineMadTestConfig implements InlineMadTestConfigSig {
6-
string getCapturedModel(Callable c) { result = Heuristic::captureFlow(c) }
6+
string getCapturedModel(Callable c) { result = Heuristic::captureHeuristicFlow(c, _) }
77

88
string getKind() { result = "heuristic-summary" }
99
}

csharp/ql/test/utils/modelgenerator/dataflow/Summaries.cs

+23-26
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,22 @@ public BasicFlow ReturnThis(object input)
1919
return this;
2020
}
2121

22-
// heuristic-summary=Models;BasicFlow;false;ReturnParam0;(System.String,System.Object);;Argument[0];ReturnValue;taint;df-generated
22+
// heuristic-summary=Models;BasicFlow;false;ReturnParam0;(System.String,System.Object);;Argument[0];ReturnValue;value;df-generated
2323
// contentbased-summary=Models;BasicFlow;false;ReturnParam0;(System.String,System.Object);;Argument[0];ReturnValue;value;dfc-generated
2424
public string ReturnParam0(string input0, object input1)
2525
{
2626
return input0;
2727
}
2828

29-
// heuristic-summary=Models;BasicFlow;false;ReturnParam1;(System.String,System.Object);;Argument[1];ReturnValue;taint;df-generated
29+
// heuristic-summary=Models;BasicFlow;false;ReturnParam1;(System.String,System.Object);;Argument[1];ReturnValue;value;df-generated
3030
// contentbased-summary=Models;BasicFlow;false;ReturnParam1;(System.String,System.Object);;Argument[1];ReturnValue;value;dfc-generated
3131
public object ReturnParam1(string input0, object input1)
3232
{
3333
return input1;
3434
}
3535

36-
// heuristic-summary=Models;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[0];ReturnValue;taint;df-generated
37-
// heuristic-summary=Models;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[1];ReturnValue;taint;df-generated
36+
// heuristic-summary=Models;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[0];ReturnValue;value;df-generated
37+
// heuristic-summary=Models;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[1];ReturnValue;value;df-generated
3838
// contentbased-summary=Models;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[0];ReturnValue;value;dfc-generated
3939
// contentbased-summary=Models;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[1];ReturnValue;value;dfc-generated
4040
public object ReturnParamMultiple(object input0, object input1)
@@ -133,35 +133,35 @@ public List<string> ReturnFieldInAList()
133133
return new List<string> { tainted };
134134
}
135135

136-
// SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnComplexTypeArray;(System.String[]);;Argument[0].Element;ReturnValue;taint;df-generated
136+
// SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnComplexTypeArray;(System.String[]);;Argument[0].Element;ReturnValue;value;df-generated
137137
// contentbased-summary=Models;CollectionFlow;false;ReturnComplexTypeArray;(System.String[]);;Argument[0];ReturnValue;value;dfc-generated
138138
public string[] ReturnComplexTypeArray(string[] a)
139139
{
140140
return a;
141141
}
142142

143-
// SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnBulkTypeList;(System.Collections.Generic.List<System.Byte>);;Argument[0].Element;ReturnValue;taint;df-generated
143+
// SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnBulkTypeList;(System.Collections.Generic.List<System.Byte>);;Argument[0].Element;ReturnValue;value;df-generated
144144
// contentbased-summary=Models;CollectionFlow;false;ReturnBulkTypeList;(System.Collections.Generic.List<System.Byte>);;Argument[0];ReturnValue;value;dfc-generated
145145
public List<byte> ReturnBulkTypeList(List<byte> a)
146146
{
147147
return a;
148148
}
149149

150-
// SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnComplexTypeDictionary;(System.Collections.Generic.Dictionary<System.Int32,System.String>);;Argument[0].Element;ReturnValue;taint;df-generated
150+
// SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnComplexTypeDictionary;(System.Collections.Generic.Dictionary<System.Int32,System.String>);;Argument[0].Element;ReturnValue;value;df-generated
151151
// contentbased-summary=Models;CollectionFlow;false;ReturnComplexTypeDictionary;(System.Collections.Generic.Dictionary<System.Int32,System.String>);;Argument[0];ReturnValue;value;dfc-generated
152152
public Dictionary<int, string> ReturnComplexTypeDictionary(Dictionary<int, string> a)
153153
{
154154
return a;
155155
}
156156

157-
// SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnUntypedArray;(System.Array);;Argument[0].Element;ReturnValue;taint;df-generated
157+
// SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnUntypedArray;(System.Array);;Argument[0].Element;ReturnValue;value;df-generated
158158
// contentbased-summary=Models;CollectionFlow;false;ReturnUntypedArray;(System.Array);;Argument[0];ReturnValue;value;dfc-generated
159159
public Array ReturnUntypedArray(Array a)
160160
{
161161
return a;
162162
}
163163

164-
// SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnUntypedList;(System.Collections.IList);;Argument[0].Element;ReturnValue;taint;df-generated
164+
// SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnUntypedList;(System.Collections.IList);;Argument[0].Element;ReturnValue;value;df-generated
165165
// contentbased-summary=Models;CollectionFlow;false;ReturnUntypedList;(System.Collections.IList);;Argument[0];ReturnValue;value;dfc-generated
166166
public IList ReturnUntypedList(IList a)
167167
{
@@ -202,7 +202,7 @@ public IEnumerableFlow(string s)
202202
tainted = s;
203203
}
204204

205-
// SPURIOUS-heuristic-summary=Models;IEnumerableFlow;false;ReturnIEnumerable;(System.Collections.Generic.IEnumerable<System.String>);;Argument[0].Element;ReturnValue;taint;df-generated
205+
// SPURIOUS-heuristic-summary=Models;IEnumerableFlow;false;ReturnIEnumerable;(System.Collections.Generic.IEnumerable<System.String>);;Argument[0].Element;ReturnValue;value;df-generated
206206
// contentbased-summary=Models;IEnumerableFlow;false;ReturnIEnumerable;(System.Collections.Generic.IEnumerable<System.String>);;Argument[0];ReturnValue;value;dfc-generated
207207
public IEnumerable<string> ReturnIEnumerable(IEnumerable<string> input)
208208
{
@@ -256,7 +256,7 @@ public List<T> ReturnFieldInGenericList()
256256
return new List<T> { tainted };
257257
}
258258

259-
// heuristic-summary=Models;GenericFlow<T>;false;ReturnGenericParam<S>;(S);;Argument[0];ReturnValue;taint;df-generated
259+
// heuristic-summary=Models;GenericFlow<T>;false;ReturnGenericParam<S>;(S);;Argument[0];ReturnValue;value;df-generated
260260
// contentbased-summary=Models;GenericFlow<T>;false;ReturnGenericParam<S>;(S);;Argument[0];ReturnValue;value;dfc-generated
261261
public S ReturnGenericParam<S>(S input)
262262
{
@@ -280,7 +280,7 @@ public void AddToGenericList<S>(List<S> input, S data)
280280

281281
public abstract class BaseClassFlow
282282
{
283-
// heuristic-summary=Models;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;taint;df-generated
283+
// heuristic-summary=Models;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;value;df-generated
284284
// contentbased-summary=Models;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;value;dfc-generated
285285
public virtual object ReturnParam(object input)
286286
{
@@ -290,7 +290,7 @@ public virtual object ReturnParam(object input)
290290

291291
public class DerivedClass1Flow : BaseClassFlow
292292
{
293-
// heuristic-summary=Models;DerivedClass1Flow;false;ReturnParam1;(System.String,System.String);;Argument[1];ReturnValue;taint;df-generated
293+
// heuristic-summary=Models;DerivedClass1Flow;false;ReturnParam1;(System.String,System.String);;Argument[1];ReturnValue;value;df-generated
294294
// contentbased-summary=Models;DerivedClass1Flow;false;ReturnParam1;(System.String,System.String);;Argument[1];ReturnValue;value;dfc-generated
295295
public string ReturnParam1(string input0, string input1)
296296
{
@@ -300,14 +300,14 @@ public string ReturnParam1(string input0, string input1)
300300

301301
public class DerivedClass2Flow : BaseClassFlow
302302
{
303-
// heuristic-summary=Models;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;taint;df-generated
303+
// heuristic-summary=Models;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;value;df-generated
304304
// contentbased-summary=Models;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;value;dfc-generated
305305
public override object ReturnParam(object input)
306306
{
307307
return input;
308308
}
309309

310-
// heuristic-summary=Models;DerivedClass2Flow;false;ReturnParam0;(System.String,System.Int32);;Argument[0];ReturnValue;taint;df-generated
310+
// heuristic-summary=Models;DerivedClass2Flow;false;ReturnParam0;(System.String,System.Int32);;Argument[0];ReturnValue;value;df-generated
311311
// contentbased-summary=Models;DerivedClass2Flow;false;ReturnParam0;(System.String,System.Int32);;Argument[0];ReturnValue;value;dfc-generated
312312
public string ReturnParam0(string input0, int input1)
313313
{
@@ -327,7 +327,7 @@ public OperatorFlow(object o)
327327
}
328328

329329
// Flow Summary.
330-
// heuristic-summary=Models;OperatorFlow;false;op_Addition;(Models.OperatorFlow,Models.OperatorFlow);;Argument[0];ReturnValue;taint;df-generated
330+
// heuristic-summary=Models;OperatorFlow;false;op_Addition;(Models.OperatorFlow,Models.OperatorFlow);;Argument[0];ReturnValue;value;df-generated
331331
// contentbased-summary=Models;OperatorFlow;false;op_Addition;(Models.OperatorFlow,Models.OperatorFlow);;Argument[0];ReturnValue;value;dfc-generated
332332
public static OperatorFlow operator +(OperatorFlow a, OperatorFlow b)
333333
{
@@ -368,7 +368,7 @@ public override bool Equals(object obj)
368368
return boolTainted;
369369
}
370370

371-
// heuristic-summary=Models;EqualsGetHashCodeNoFlow;false;Equals;(System.String);;Argument[0];ReturnValue;taint;df-generated
371+
// heuristic-summary=Models;EqualsGetHashCodeNoFlow;false;Equals;(System.String);;Argument[0];ReturnValue;value;df-generated
372372
// contentbased-summary=Models;EqualsGetHashCodeNoFlow;false;Equals;(System.String);;Argument[0];ReturnValue;value;dfc-generated
373373
public string Equals(string s)
374374
{
@@ -606,7 +606,7 @@ public abstract class BasePublic
606606

607607
public class AImplBasePublic : BasePublic
608608
{
609-
// heuristic-summary=Models;Inheritance+BasePublic;true;Id;(System.String);;Argument[0];ReturnValue;taint;df-generated
609+
// heuristic-summary=Models;Inheritance+BasePublic;true;Id;(System.String);;Argument[0];ReturnValue;value;df-generated
610610
// contentbased-summary=Models;Inheritance+BasePublic;true;Id;(System.String);;Argument[0];ReturnValue;value;dfc-generated
611611
public override string Id(string x)
612612
{
@@ -636,7 +636,7 @@ private abstract class C : IPublic2
636636

637637
public class BImpl : B
638638
{
639-
// heuristic-summary=Models;Inheritance+IPublic1;true;Id;(System.String);;Argument[0];ReturnValue;taint;df-generated
639+
// heuristic-summary=Models;Inheritance+IPublic1;true;Id;(System.String);;Argument[0];ReturnValue;value;df-generated
640640
// contentbased-summary=Models;Inheritance+IPublic1;true;Id;(System.String);;Argument[0];ReturnValue;value;dfc-generated
641641
public override string Id(string x)
642642
{
@@ -646,7 +646,7 @@ public override string Id(string x)
646646

647647
private class CImpl : C
648648
{
649-
// heuristic-summary=Models;Inheritance+IPublic2;true;Id;(System.String);;Argument[0];ReturnValue;taint;df-generated
649+
// heuristic-summary=Models;Inheritance+IPublic2;true;Id;(System.String);;Argument[0];ReturnValue;value;df-generated
650650
// contentbased-summary=Models;Inheritance+IPublic2;true;Id;(System.String);;Argument[0];ReturnValue;value;dfc-generated
651651
public override string Id(string x)
652652
{
@@ -656,13 +656,11 @@ public override string Id(string x)
656656

657657
public interface IPublic3
658658
{
659-
// neutral=Models;Inheritance+IPublic3;get_Prop;();summary;df-generated
660659
string Prop { get; }
661660
}
662661

663662
public abstract class D : IPublic3
664663
{
665-
// neutral=Models;Inheritance+D;get_Prop;();summary;df-generated
666664
public abstract string Prop { get; }
667665
}
668666

@@ -929,7 +927,6 @@ public class Fanout
929927

930928
public abstract class Base1
931929
{
932-
// neutral=Models;Fanout+Base1;GetValue;();summary;df-generated
933930
public abstract string GetValue();
934931
}
935932

@@ -1035,14 +1032,14 @@ public override object GetValue()
10351032
public class ParameterModifiers
10361033
{
10371034
// contentbased-summary=Models;ParameterModifiers;false;Copy;(System.Object,System.Object);;Argument[0];Argument[1];value;dfc-generated
1038-
// heuristic-summary=Models;ParameterModifiers;false;Copy;(System.Object,System.Object);;Argument[0];Argument[1];taint;df-generated
1035+
// heuristic-summary=Models;ParameterModifiers;false;Copy;(System.Object,System.Object);;Argument[0];Argument[1];value;df-generated
10391036
public void Copy(object key, out object value)
10401037
{
10411038
value = key;
10421039
}
10431040

10441041
// contentbased-summary=Models;ParameterModifiers;false;CopyToRef;(System.Object,System.Object);;Argument[0];Argument[1];value;dfc-generated
1045-
// heuristic-summary=Models;ParameterModifiers;false;CopyToRef;(System.Object,System.Object);;Argument[0];Argument[1];taint;df-generated
1042+
// heuristic-summary=Models;ParameterModifiers;false;CopyToRef;(System.Object,System.Object);;Argument[0];Argument[1];value;df-generated
10461043
public void CopyToRef(object key, ref object value)
10471044
{
10481045
value = key;
@@ -1062,7 +1059,7 @@ public void RefParamUse(ref object value)
10621059
}
10631060

10641061
// contentbased-summary=Models;ParameterModifiers;false;InReturn;(System.Object);;Argument[0];ReturnValue;value;dfc-generated
1065-
// heuristic-summary=Models;ParameterModifiers;false;InReturn;(System.Object);;Argument[0];ReturnValue;taint;df-generated
1062+
// heuristic-summary=Models;ParameterModifiers;false;InReturn;(System.Object);;Argument[0];ReturnValue;value;df-generated
10661063
public object InReturn(in object v)
10671064
{
10681065
return v;

0 commit comments

Comments
 (0)