5
5
6
6
private import python
7
7
private import semmle.python.Concepts
8
- private import semmle.python.dataflow.new.DataFlow
9
8
private import semmle.python.ApiGraphs
10
9
private import semmle.python.dataflow.new.RemoteFlowSources
11
10
private import semmle.python.frameworks.internal.InstanceTaintStepsHelper
@@ -17,14 +16,18 @@ private import semmle.python.frameworks.internal.InstanceTaintStepsHelper
17
16
* See https://bottlepy.org/docs/dev/.
18
17
*/
19
18
module Bottle {
20
- module BottleModule {
21
- API:: Node bottle ( ) { result = API:: moduleImport ( "bottle" ) }
19
+ /** Gets a reference to the `bottle` module. */
20
+ API:: Node bottle ( ) { result = API:: moduleImport ( "bottle" ) }
22
21
22
+ /** Provides models for the `bottle` module. */
23
+ module BottleModule {
24
+ /** Provides models for the `bottle.response` module */
23
25
module Response {
26
+ /** Gets a reference to the `bottle.response` module. */
24
27
API:: Node response ( ) { result = bottle ( ) .getMember ( "response" ) }
25
28
26
29
/**
27
- * A call to the `bottle.web.RequestHandler. set_header` or `bottle.web.RequestHandler .add_header` method.
30
+ * A call to the `bottle.BaseResponse. set_header` or `bottle.BaseResponse .add_header` method.
28
31
*
29
32
* See https://bottlepy.org/docs/dev/api.html#bottle.BaseResponse.set_header
30
33
*/
@@ -48,7 +51,9 @@ module Bottle {
48
51
override predicate valueAllowsNewline ( ) { none ( ) }
49
52
}
50
53
54
+ /** Provides models for the `bottle.request` module */
51
55
module Request {
56
+ /** Gets a reference to the `bottle.request` module. */
52
57
API:: Node request ( ) { result = bottle ( ) .getMember ( "request" ) }
53
58
54
59
private class Request extends RemoteFlowSource:: Range {
0 commit comments