@@ -2,19 +2,19 @@ import python
22
33import semmle.python.security.TaintTracking
44
5- private ClassObject theTwistedHttpRequestClass ( ) {
6- result = ModuleObject :: named ( "twisted.web.http" ) . attr ( " Request")
5+ private ClassValue theTwistedHttpRequestClass ( ) {
6+ result = Value :: named ( "twisted.web.http. Request" )
77}
88
9- private ClassObject theTwistedHttpResourceClass ( ) {
10- result = ModuleObject :: named ( "twisted.web.resource" ) . attr ( " Resource")
9+ private ClassValue theTwistedHttpResourceClass ( ) {
10+ result = Value :: named ( "twisted.web.resource. Resource" )
1111}
1212
13- ClassObject aTwistedRequestHandlerClass ( ) {
14- result .getASuperType ( ) = theTwistedHttpResourceClass ( )
13+ ClassValue aTwistedRequestHandlerClass ( ) {
14+ result .getABaseType + ( ) = theTwistedHttpResourceClass ( )
1515}
1616
17- FunctionObject getTwistedRequestHandlerMethod ( string name ) {
17+ FunctionValue getTwistedRequestHandlerMethod ( string name ) {
1818 result = aTwistedRequestHandlerClass ( ) .declaredAttribute ( name )
1919}
2020
@@ -28,25 +28,25 @@ predicate isKnownRequestHandlerMethodName(string name) {
2828 * `Request` class.
2929 */
3030predicate isTwistedRequestInstance ( NameNode node ) {
31- node .refersTo ( _ , theTwistedHttpRequestClass ( ) , _ )
31+ node .pointsTo ( ) . getClass ( ) = theTwistedHttpRequestClass ( )
3232 or
3333 /* In points-to analysis cannot infer that a given object is an instance of
3434 * the `twisted.web.http.Request` class, we also include any parameter
3535 * called `request` that appears inside a subclass of a request handler
3636 * class, and the appropriate arguments of known request handler methods.
3737 */
3838 exists ( Function func | func = node .getScope ( ) |
39- func .getEnclosingScope ( ) . ( Class ) . getClassObject ( ) = aTwistedRequestHandlerClass ( )
39+ func .getEnclosingScope ( ) = aTwistedRequestHandlerClass ( ) . getScope ( )
4040 ) and
4141 (
4242 /* Any parameter called `request` */
4343 node .getId ( ) = "request" and
4444 node .isParameter ( )
4545 or
4646 /* Any request parameter of a known request handler method */
47- exists ( FunctionObject func | node .getScope ( ) = func . getFunction ( ) |
47+ exists ( Function func | node .getScope ( ) = func |
4848 isKnownRequestHandlerMethodName ( func .getName ( ) ) and
49- node .getNode ( ) = func .getFunction ( ) . getArg ( 1 )
49+ node .getNode ( ) = func .getArg ( 1 )
5050 )
5151 )
5252}
0 commit comments