@@ -306,9 +306,9 @@ private module FlaskModel {
306306
307307 private module FlaskRequestTracking {
308308 /** Gets a reference to either of the `get_json` or `get_data` attributes of a Flask request. */
309- DataFlow :: Node tainted_methods ( string attr_name ) {
309+ API :: Node tainted_methods ( string attr_name ) {
310310 attr_name in [ "get_data" , "get_json" ] and
311- result = flask:: request ( ) .getMember ( attr_name ) . getAUse ( )
311+ result = flask:: request ( ) .getMember ( attr_name )
312312 }
313313 }
314314
@@ -364,7 +364,7 @@ private module FlaskModel {
364364 )
365365 or
366366 // methods (needs special handling to track bound-methods -- see `FlaskRequestMethodCallsAdditionalTaintStep` below)
367- this = FlaskRequestTracking:: tainted_methods ( attr_name )
367+ this = FlaskRequestTracking:: tainted_methods ( attr_name ) . getAUse ( )
368368 }
369369
370370 override string getSourceType ( ) { result = "flask.request input" }
@@ -374,7 +374,7 @@ private module FlaskModel {
374374 override predicate step ( DataFlow:: Node nodeFrom , DataFlow:: Node nodeTo ) {
375375 // NOTE: `request -> request.tainted_method` part is handled as part of RequestInputAccess
376376 // tainted_method -> tainted_method()
377- nodeFrom = FlaskRequestTracking:: tainted_methods ( _) and
377+ nodeFrom = FlaskRequestTracking:: tainted_methods ( _) . getAUse ( ) and
378378 nodeTo .asCfgNode ( ) .( CallNode ) .getFunction ( ) = nodeFrom .asCfgNode ( )
379379 }
380380 }
@@ -443,7 +443,7 @@ private module FlaskModel {
443443 DataFlow:: CfgNode {
444444 override CallNode node ;
445445
446- FlaskRedirectCall ( ) { node .getFunction ( ) = flask_attr ( "redirect" ) .asCfgNode ( ) }
446+ FlaskRedirectCall ( ) { node .getFunction ( ) = flask_attr ( "redirect" ) .getAUse ( ) . asCfgNode ( ) }
447447
448448 override DataFlow:: Node getRedirectLocation ( ) {
449449 result .asCfgNode ( ) in [ node .getArg ( 0 ) , node .getArgByName ( "location" ) ]
0 commit comments