Skip to content

Commit 6011cb7

Browse files
committed
Python: Add twisted tests from internal repo
1 parent 367827a commit 6011cb7

12 files changed

Lines changed: 186 additions & 0 deletions

File tree

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
| class ErrorPage | resources/lib/python/lib/twisted/web/resource.py:280 |
2+
| class ForbiddenResource | resources/lib/python/lib/twisted/web/resource.py:348 |
3+
| class MyRequestHandler1 | test.py:3 |
4+
| class MyRequestHandler2 | test.py:23 |
5+
| class MyRequestHandler3 | test.py:27 |
6+
| class MyRequestHandler4 | test.py:38 |
7+
| class MyRequestHandler5 | test.py:42 |
8+
| class NoResource | resources/lib/python/lib/twisted/web/resource.py:338 |
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import python
2+
import semmle.python.TestUtils
3+
import semmle.python.web.twisted.Twisted
4+
5+
from ClassObject cls
6+
where cls = aTwistedRequestHandlerClass()
7+
select cls.toString(), remove_library_prefix(cls.getPyClass().getLocation())
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
| __init__ | Function __init__ | resources/lib/python/lib/twisted/web/resource.py:316 |
2+
| __init__ | Function __init__ | resources/lib/python/lib/twisted/web/resource.py:343 |
3+
| __init__ | Function __init__ | resources/lib/python/lib/twisted/web/resource.py:353 |
4+
| getChild | Function getChild | resources/lib/python/lib/twisted/web/resource.py:333 |
5+
| myrender | Function myrender | test.py:24 |
6+
| render | Function render | resources/lib/python/lib/twisted/web/resource.py:323 |
7+
| render | Function render | test.py:4 |
8+
| render | Function render | test.py:28 |
9+
| render | Function render | test.py:39 |
10+
| render | Function render | test.py:43 |
11+
| render_GET | Function render_GET | test.py:9 |
12+
| render_POST | Function render_POST | test.py:16 |
13+
| render_POST | Function render_POST | test.py:31 |
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import python
2+
import semmle.python.TestUtils
3+
import semmle.python.web.twisted.Twisted
4+
5+
from FunctionObject func, string name
6+
where func = getTwistedRequestHandlerMethod(name)
7+
select name, func.toString(), remove_library_prefix(func.getFunction().getLocation())
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
| resources/lib/python/lib/twisted/web/resource.py:325 | Str | externally controlled string |
2+
| resources/lib/python/lib/twisted/web/resource.py:329 | Attribute() | externally controlled string |
3+
| resources/lib/python/lib/twisted/web/resource.py:330 | interpolated | externally controlled string |
4+
| test.py:7 | response | externally controlled string |
5+
| test.py:14 | response | externally controlled string |
6+
| test.py:21 | response | externally controlled string |
7+
| test.py:36 | do_stuff_with() | externally controlled string |
8+
| test.py:40 | Str | externally controlled string |
9+
| test.py:44 | Str | externally controlled string |
10+
| test.py:45 | Str | externally controlled string |
11+
| test.py:46 | Str | externally controlled string |
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import python
2+
3+
import semmle.python.web.HttpRequest
4+
import semmle.python.web.HttpResponse
5+
import semmle.python.security.strings.Untrusted
6+
import semmle.python.TestUtils
7+
8+
from TaintSink sink, TaintKind kind
9+
where sink.sinks(kind)
10+
select remove_library_prefix(sink.getLocation()), sink.(ControlFlowNode).getNode().toString(), kind
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
| resources/lib/python/lib/twisted/web/resource.py:323 | request | twisted.request.http.Request |
2+
| resources/lib/python/lib/twisted/web/resource.py:333 | request | twisted.request.http.Request |
3+
| test.py:4 | request | twisted.request.http.Request |
4+
| test.py:9 | request | twisted.request.http.Request |
5+
| test.py:16 | request | twisted.request.http.Request |
6+
| test.py:24 | request | twisted.request.http.Request |
7+
| test.py:28 | myrequest | twisted.request.http.Request |
8+
| test.py:31 | postrequest | twisted.request.http.Request |
9+
| test.py:39 | request | twisted.request.http.Request |
10+
| test.py:43 | request | twisted.request.http.Request |
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import python
2+
import semmle.python.TestUtils
3+
4+
import semmle.python.web.HttpRequest
5+
import semmle.python.web.HttpResponse
6+
import semmle.python.security.strings.Untrusted
7+
8+
9+
from TaintSource src, TaintKind kind
10+
where src.isSourceOf(kind)
11+
select remove_library_prefix(src.getLocation()), src.(ControlFlowNode).getNode().toString(), kind
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
| resources/lib/python/lib/twisted/web/resource.py:323 | request | twisted.request.http.Request |
2+
| resources/lib/python/lib/twisted/web/resource.py:324 | request | twisted.request.http.Request |
3+
| resources/lib/python/lib/twisted/web/resource.py:325 | request | twisted.request.http.Request |
4+
| resources/lib/python/lib/twisted/web/resource.py:333 | request | twisted.request.http.Request |
5+
| test.py:4 | request | twisted.request.http.Request |
6+
| test.py:5 | Attribute | externally controlled string |
7+
| test.py:5 | request | twisted.request.http.Request |
8+
| test.py:6 | request | twisted.request.http.Request |
9+
| test.py:9 | request | twisted.request.http.Request |
10+
| test.py:10 | request | twisted.request.http.Request |
11+
| test.py:11 | Attribute | externally controlled string |
12+
| test.py:11 | x | twisted.request.http.Request |
13+
| test.py:12 | request | twisted.request.http.Request |
14+
| test.py:13 | request | twisted.request.http.Request |
15+
| test.py:16 | request | twisted.request.http.Request |
16+
| test.py:17 | Attribute | {[externally controlled string]} |
17+
| test.py:17 | request | twisted.request.http.Request |
18+
| test.py:18 | Attribute | {[externally controlled string]} |
19+
| test.py:18 | Attribute() | [externally controlled string] |
20+
| test.py:18 | request | twisted.request.http.Request |
21+
| test.py:19 | Subscript | externally controlled string |
22+
| test.py:19 | foo | [externally controlled string] |
23+
| test.py:20 | quux | externally controlled string |
24+
| test.py:24 | request | twisted.request.http.Request |
25+
| test.py:25 | request | twisted.request.http.Request |
26+
| test.py:28 | myrequest | twisted.request.http.Request |
27+
| test.py:29 | myrequest | twisted.request.http.Request |
28+
| test.py:31 | postrequest | twisted.request.http.Request |
29+
| test.py:32 | Attribute() | externally controlled string |
30+
| test.py:32 | postrequest | twisted.request.http.Request |
31+
| test.py:33 | Attribute() | externally controlled string |
32+
| test.py:33 | postrequest | twisted.request.http.Request |
33+
| test.py:34 | Attribute() | externally controlled string |
34+
| test.py:34 | postrequest | twisted.request.http.Request |
35+
| test.py:35 | Attribute() | externally controlled string |
36+
| test.py:35 | postrequest | twisted.request.http.Request |
37+
| test.py:36 | w | externally controlled string |
38+
| test.py:36 | x | externally controlled string |
39+
| test.py:36 | y | externally controlled string |
40+
| test.py:36 | z | externally controlled string |
41+
| test.py:39 | request | twisted.request.http.Request |
42+
| test.py:40 | request | twisted.request.http.Request |
43+
| test.py:43 | request | twisted.request.http.Request |
44+
| test.py:44 | request | twisted.request.http.Request |
45+
| test.py:45 | request | twisted.request.http.Request |
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import python
2+
import semmle.python.TestUtils
3+
4+
import semmle.python.web.HttpRequest
5+
import semmle.python.web.HttpResponse
6+
import semmle.python.security.strings.Untrusted
7+
8+
from TaintedNode node
9+
10+
select remove_library_prefix(node.getLocation()), node.getAstNode().toString(), node.getTaintKind()
11+

0 commit comments

Comments
 (0)