@@ -49,25 +49,23 @@ DataFlowType getSyntheticGlobalType(SummaryComponent::SyntheticGlobal sg) { any(
49
49
50
50
/**
51
51
* Holds if an external flow summary exists for `c` with input specification
52
- * `input`, output specification `output`, kind `kind`, and a flag `generated`
53
- * stating whether the summary is autogenerated.
52
+ * `input`, output specification `output`, kind `kind`, and provenance `provenance`.
54
53
*/
55
54
predicate summaryElement (
56
- FlowSummary:: SummarizedCallable c , string input , string output , string kind , boolean generated
55
+ FlowSummary:: SummarizedCallable c , string input , string output , string kind , string provenance
57
56
) {
58
57
exists ( boolean preservesValue |
59
58
c .propagatesFlowExt ( input , output , preservesValue ) and
60
59
( if preservesValue = true then kind = "value" else kind = "taint" ) and
61
- generated = false
60
+ provenance = "manual"
62
61
)
63
62
}
64
63
65
64
/**
66
- * Holds if a neutral model exists for `c`, which means that there is no
67
- * flow through `c`. The flag `generated` states whether the neutral model is autogenerated.
68
- * Note. Neutral models have not been implemented for ruby.
65
+ * Holds if a neutral model exists for `c` with provenance `provenance`,
66
+ * which means that there is no flow through `c`.
69
67
*/
70
- predicate neutralElement ( FlowSummary:: SummarizedCallable c , boolean generated ) { none ( ) }
68
+ predicate neutralElement ( FlowSummary:: SummarizedCallable c , string provenance ) { none ( ) }
71
69
72
70
bindingset [ arg]
73
71
private SummaryComponent interpretElementArg ( string arg ) {
@@ -207,17 +205,15 @@ NormalReturnKind getReturnValueKind() { any() }
207
205
private module UnusedSourceSinkInterpretation {
208
206
/**
209
207
* Holds if an external source specification exists for `n` with output specification
210
- * `output`, kind `kind`, and a flag `generated` stating whether the source specification is
211
- * autogenerated.
208
+ * `output`, kind `kind`, and provenance `provenance`.
212
209
*/
213
- predicate sourceElement ( AstNode n , string output , string kind , boolean generated ) { none ( ) }
210
+ predicate sourceElement ( AstNode n , string output , string kind , string provenance ) { none ( ) }
214
211
215
212
/**
216
213
* Holds if an external sink specification exists for `n` with input specification
217
- * `input`, kind `kind` and a flag `generated` stating whether the sink specification is
218
- * autogenerated.
214
+ * `input`, kind `kind` and provenance `provenance`.
219
215
*/
220
- predicate sinkElement ( AstNode n , string input , string kind , boolean generated ) { none ( ) }
216
+ predicate sinkElement ( AstNode n , string input , string kind , string provenance ) { none ( ) }
221
217
222
218
class SourceOrSinkElement = AstNode ;
223
219
0 commit comments