Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 46eb3fd

Browse files
committed
Python: Even more API::Node pushing.
1 parent c0c2aa6 commit 46eb3fd

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

  • python/ql/src/semmle/python/frameworks

python/ql/src/semmle/python/frameworks/Flask.qll

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)