@@ -12,7 +12,7 @@ import semmle.code.java.dataflow.internal.DataFlowPrivate
12
12
import semmle.code.java.dataflow.InstanceAccess
13
13
import ModelGeneratorUtils
14
14
15
- string captureFlow ( Callable api ) {
15
+ string captureFlow ( TargetAPI api ) {
16
16
result = captureQualifierFlow ( api ) or
17
17
result = captureParameterFlowToReturnValue ( api ) or
18
18
result = captureFieldFlowIn ( api ) or
@@ -32,7 +32,7 @@ string captureFlow(Callable api) {
32
32
* }
33
33
* ```
34
34
*/
35
- string captureQualifierFlow ( Callable api ) {
35
+ string captureQualifierFlow ( TargetAPI api ) {
36
36
exists ( ReturnStmt rtn |
37
37
rtn .getEnclosingCallable ( ) = api and
38
38
rtn .getResult ( ) .( ThisAccess ) .isOwnInstanceAccess ( )
@@ -92,7 +92,7 @@ class FieldToReturnConfig extends TaintTracking::Configuration {
92
92
* p;Foo;true;putsTaintIntoParameter;(List);Argument[-1];Argument[0];taint
93
93
* ```
94
94
*/
95
- string captureFieldFlow ( Callable api ) {
95
+ string captureFieldFlow ( TargetAPI api ) {
96
96
exists ( FieldToReturnConfig config , ReturnNodeExt returnNodeExt |
97
97
config .hasFlow ( _, returnNodeExt ) and
98
98
returnNodeExt .getEnclosingCallable ( ) = api and
@@ -107,7 +107,7 @@ string captureFieldFlow(Callable api) {
107
107
)
108
108
}
109
109
110
- string asOutput ( Callable api , ReturnNodeExt node ) {
110
+ string asOutput ( TargetAPI api , ReturnNodeExt node ) {
111
111
if node .getKind ( ) instanceof ValueReturnKind
112
112
then result = "ReturnValue"
113
113
else
@@ -164,7 +164,7 @@ private predicate thisAccess(DataFlow::Node n) {
164
164
* Captured Model:
165
165
* `p;Foo;true;doSomething;(String);Argument[0];Argument[-1];taint`
166
166
*/
167
- string captureFieldFlowIn ( Callable api ) {
167
+ string captureFieldFlowIn ( TargetAPI api ) {
168
168
exists ( DataFlow:: Node source , ParameterToFieldConfig config |
169
169
not api .isStatic ( ) and
170
170
config .hasFlow ( source , _) and
@@ -179,7 +179,7 @@ class ParameterToReturnValueTaintConfig extends TaintTracking::Configuration {
179
179
ParameterToReturnValueTaintConfig ( ) { this = "ParameterToReturnValueTaintConfig" }
180
180
181
181
override predicate isSource ( DataFlow:: Node source ) {
182
- exists ( Callable api |
182
+ exists ( TargetAPI api |
183
183
source instanceof DataFlow:: ParameterNode and
184
184
api = source .asParameter ( ) .getCallable ( ) and
185
185
isRelevantType ( api .getReturnType ( ) ) and
@@ -221,7 +221,7 @@ predicate paramFlowToReturnValueExists(Parameter p) {
221
221
* p;Foo;true;returnData;;Argument[0];ReturnValue;taint
222
222
* ```
223
223
*/
224
- string captureParameterFlowToReturnValue ( Callable api ) {
224
+ string captureParameterFlowToReturnValue ( TargetAPI api ) {
225
225
exists ( Parameter p |
226
226
p = api .getAParameter ( ) and
227
227
paramFlowToReturnValueExists ( p )
@@ -246,7 +246,7 @@ string captureParameterFlowToReturnValue(Callable api) {
246
246
* p;Foo;true;addToList;;Argument[0];Argument[1];taint
247
247
* ```
248
248
*/
249
- string captureParameterToParameterFlow ( Callable api ) {
249
+ string captureParameterToParameterFlow ( TargetAPI api ) {
250
250
exists ( DataFlow:: ParameterNode source , DataFlow:: PostUpdateNode sink |
251
251
source .getEnclosingCallable ( ) = api and
252
252
sink .getPreUpdateNode ( ) .asExpr ( ) = api .getAParameter ( ) .getAnAccess ( ) and
0 commit comments