@@ -78,25 +78,24 @@ DataFlowType getSyntheticGlobalType(SummaryComponent::SyntheticGlobal sg) { any(
78
78
79
79
/**
80
80
* Holds if an external flow summary exists for `c` with input specification
81
- * `input`, output specification `output`, kind `kind`, and a flag `generated`
82
- * stating whether the summary is autogenerated.
81
+ * `input`, output specification `output`, kind `kind`, and provenance `provenance`.
83
82
*/
84
83
predicate summaryElement (
85
- FlowSummary:: SummarizedCallable c , string input , string output , string kind , boolean generated
84
+ FlowSummary:: SummarizedCallable c , string input , string output , string kind , string provenance
86
85
) {
87
86
exists ( boolean preservesValue |
88
87
c .propagatesFlowExt ( input , output , preservesValue ) and
89
88
( if preservesValue = true then kind = "value" else kind = "taint" ) and
90
- generated = false
89
+ provenance = "manual"
91
90
)
92
91
}
93
92
94
93
/**
95
- * Holds if a neutral model exists for `c`, which means that there is no
96
- * flow through `c`. The flag `generated` states whether the neutral model is autogenerated .
94
+ * Holds if a neutral model exists for `c` with provenance `provenance`,
95
+ * which means that there is no flow through `c` .
97
96
* Note. Neutral models have not been implemented for Python.
98
97
*/
99
- predicate neutralElement ( FlowSummary:: SummarizedCallable c , boolean generated ) { none ( ) }
98
+ predicate neutralElement ( FlowSummary:: SummarizedCallable c , string provenance ) { none ( ) }
100
99
101
100
/**
102
101
* Gets the summary component for specification component `c`, if any.
@@ -137,17 +136,15 @@ ReturnKind getReturnValueKind() { any() }
137
136
private module UnusedSourceSinkInterpretation {
138
137
/**
139
138
* Holds if an external source specification exists for `n` with output specification
140
- * `output`, kind `kind`, and a flag `generated` stating whether the source specification is
141
- * autogenerated.
139
+ * `output`, kind `kind`, and provenance `provenance`.
142
140
*/
143
- predicate sourceElement ( AstNode n , string output , string kind , boolean generated ) { none ( ) }
141
+ predicate sourceElement ( AstNode n , string output , string kind , string provenance ) { none ( ) }
144
142
145
143
/**
146
144
* Holds if an external sink specification exists for `n` with input specification
147
- * `input`, kind `kind` and a flag `generated` stating whether the sink specification is
148
- * autogenerated.
145
+ * `input`, kind `kind` and provenance `provenance`.
149
146
*/
150
- predicate sinkElement ( AstNode n , string input , string kind , boolean generated ) { none ( ) }
147
+ predicate sinkElement ( AstNode n , string input , string kind , string provenance ) { none ( ) }
151
148
152
149
class SourceOrSinkElement = AstNode ;
153
150
0 commit comments