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

Skip to content

Commit e3d530d

Browse files
committed
Python: Flask: Remove more type-tracking helper predicates
1 parent e4ea5f2 commit e3d530d

1 file changed

Lines changed: 5 additions & 16 deletions

File tree

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

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

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ private module FlaskModel {
6868
*/
6969
module Blueprint {
7070
/** Gets a reference to the `flask.Blueprint` class. */
71-
API::Node classRef() { result = flask().getMember("Blueprint") }
71+
API::Node classRef() { result = API::moduleImport("flask").getMember("Blueprint") }
7272

7373
/** Gets a reference to an instance of `flask.Blueprint`. */
7474
API::Node instance() { result = classRef().getReturn() }
@@ -77,21 +77,10 @@ private module FlaskModel {
7777
// ---------------------------------------------------------------------------
7878
// flask
7979
// ---------------------------------------------------------------------------
80-
/** Gets a reference to the `flask` module. */
81-
API::Node flask() { result = API::moduleImport("flask") }
82-
83-
/**
84-
* Gets a reference to the attribute `attr_name` of the `flask` module.
85-
*/
86-
private API::Node flask_attr(string attr_name) { result = flask().getMember(attr_name) }
87-
8880
/** Provides models for the `flask` module. */
8981
module flask {
9082
/** Gets a reference to the `flask.request` object. */
91-
API::Node request() { result = flask_attr("request") }
92-
93-
/** Gets a reference to the `flask.make_response` function. */
94-
API::Node make_response() { result = flask_attr("make_response") }
83+
API::Node request() { result = API::moduleImport("flask").getMember("request") }
9584
}
9685

9786
/**
@@ -102,7 +91,7 @@ private module FlaskModel {
10291
module Response {
10392
/** Gets a reference to the `flask.Response` class. */
10493
API::Node classRef() {
105-
result = flask_attr("Response")
94+
result = API::moduleImport("flask").getMember("Response")
10695
or
10796
result = [FlaskApp::classRef(), FlaskApp::instance()].getMember("response_class")
10897
}
@@ -398,7 +387,7 @@ private module FlaskModel {
398387
private class FlaskMakeResponseCall extends HTTP::Server::HttpResponse::Range,
399388
DataFlow::CallCfgNode {
400389
FlaskMakeResponseCall() {
401-
this = flask::make_response().getACall()
390+
this = API::moduleImport("flask").getMember("make_response").getACall()
402391
or
403392
this = FlaskApp::instance().getMember("make_response").getACall()
404393
}
@@ -432,7 +421,7 @@ private module FlaskModel {
432421
*/
433422
private class FlaskRedirectCall extends HTTP::Server::HttpRedirectResponse::Range,
434423
DataFlow::CallCfgNode {
435-
FlaskRedirectCall() { this = flask_attr("redirect").getACall() }
424+
FlaskRedirectCall() { this = API::moduleImport("flask").getMember("redirect").getACall() }
436425

437426
override DataFlow::Node getRedirectLocation() {
438427
result in [this.getArg(0), this.getArgByName("location")]

0 commit comments

Comments
 (0)