@@ -215,35 +215,37 @@ module ActiveResource {
215
215
Collection getCollection ( ) { result = this .getReceiver ( ) }
216
216
}
217
217
218
- private class ModelClassMethodCallAsHttpRequest extends HTTP:: Client:: Request:: Range {
219
- ModelClassMethodCall call ;
218
+ private class ModelClassMethodCallAsHttpRequest extends HTTP:: Client:: Request:: Range ,
219
+ ModelClassMethodCall {
220
220
ModelClass cls ;
221
221
222
222
ModelClassMethodCallAsHttpRequest ( ) {
223
- this = call .asExpr ( ) .getExpr ( ) and
224
- call .getModelClass ( ) = cls and
225
- call .getMethodName ( ) = [ "all" , "build" , "create" , "create!" , "find" , "first" , "last" ]
223
+ this .getModelClass ( ) = cls and
224
+ this .getMethodName ( ) = [ "all" , "build" , "create" , "create!" , "find" , "first" , "last" ]
226
225
}
227
226
228
227
override string getFramework ( ) { result = "ActiveResource" }
229
228
230
- override predicate disablesCertificateValidation ( DataFlow:: Node disablingNode ) {
231
- cls .disablesCertificateValidation ( disablingNode )
229
+ override predicate disablesCertificateValidation (
230
+ DataFlow:: Node disablingNode , DataFlow:: Node argumentOrigin
231
+ ) {
232
+ cls .disablesCertificateValidation ( disablingNode ) and
233
+ // TODO: highlight real argument origin
234
+ argumentOrigin = disablingNode
232
235
}
233
236
234
237
override DataFlow:: Node getAUrlPart ( ) { result = cls .getASiteAssignment ( ) .getAUrlPart ( ) }
235
238
236
- override DataFlow:: Node getResponseBody ( ) { result = call }
239
+ override DataFlow:: Node getResponseBody ( ) { result = this }
237
240
}
238
241
239
- private class ModelInstanceMethodCallAsHttpRequest extends HTTP:: Client:: Request:: Range {
240
- ModelInstanceMethodCall call ;
242
+ private class ModelInstanceMethodCallAsHttpRequest extends HTTP:: Client:: Request:: Range ,
243
+ ModelInstanceMethodCall {
241
244
ModelClass cls ;
242
245
243
246
ModelInstanceMethodCallAsHttpRequest ( ) {
244
- this = call .asExpr ( ) .getExpr ( ) and
245
- call .getModelClass ( ) = cls and
246
- call .getMethodName ( ) =
247
+ this .getModelClass ( ) = cls and
248
+ this .getMethodName ( ) =
247
249
[
248
250
"exists?" , "reload" , "save" , "save!" , "destroy" , "delete" , "get" , "patch" , "post" , "put" ,
249
251
"update_attribute" , "update_attributes"
@@ -252,13 +254,17 @@ module ActiveResource {
252
254
253
255
override string getFramework ( ) { result = "ActiveResource" }
254
256
255
- override predicate disablesCertificateValidation ( DataFlow:: Node disablingNode ) {
256
- cls .disablesCertificateValidation ( disablingNode )
257
+ override predicate disablesCertificateValidation (
258
+ DataFlow:: Node disablingNode , DataFlow:: Node argumentOrigin
259
+ ) {
260
+ cls .disablesCertificateValidation ( disablingNode ) and
261
+ // TODO: highlight real argument origin
262
+ argumentOrigin = disablingNode
257
263
}
258
264
259
265
override DataFlow:: Node getAUrlPart ( ) { result = cls .getASiteAssignment ( ) .getAUrlPart ( ) }
260
266
261
- override DataFlow:: Node getResponseBody ( ) { result = call }
267
+ override DataFlow:: Node getResponseBody ( ) { result = this }
262
268
}
263
269
264
270
/**
0 commit comments