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

Skip to content

Commit 22f55d2

Browse files
committed
Python taint-tracking. Reorder columns in some tests for easier comprehension of expected output.
1 parent e51b797 commit 22f55d2

6 files changed

Lines changed: 425 additions & 425 deletions

File tree

python/ql/test/library-tests/taint/config/TestNode.expected

Lines changed: 314 additions & 314 deletions
Large diffs are not rendered by default.

python/ql/test/library-tests/taint/config/TestNode.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ import TaintLib
66

77
from TaintTrackingNode n
88
where n.getConfiguration() instanceof TestConfig
9-
select n.getTaintKind(), n.getLocation().toString(), n.getNode().toString(), n.getPath().toString(), n.getContext().toString()
9+
select n.getLocation().toString(), n.getTaintKind(), n.getNode().toString(), n.getPath().toString(), n.getContext().toString()
1010

Lines changed: 80 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,80 @@
1-
| Basic custom config | test.py:122 | 122 | t | simple.test |
2-
| Basic custom config | test.py:130 | 130 | t | simple.test |
3-
| Basic custom config | test.py:140 | 140 | t | simple.test |
4-
| Basic custom config | test.py:151 | 151 | t | simple.test |
5-
| Rock-paper-scissors config | rockpaperscissors.py:13 | 13 | SCISSORS | scissors |
6-
| Rock-paper-scissors config | rockpaperscissors.py:16 | 16 | ROCK | rock |
7-
| Rock-paper-scissors config | rockpaperscissors.py:21 | 21 | y | paper |
8-
| Rock-paper-scissors config | rockpaperscissors.py:26 | 26 | y | paper |
9-
| Rock-paper-scissors config | rockpaperscissors.py:31 | 31 | x | rock |
10-
| Rock-paper-scissors config | rockpaperscissors.py:32 | 32 | y | rock |
11-
| Simple config | carrier.py:18 | 18 | Attribute | simple.test |
12-
| Simple config | carrier.py:22 | 22 | Attribute() | simple.test |
13-
| Simple config | carrier.py:26 | 26 | Attribute() | simple.test |
14-
| Simple config | carrier.py:30 | 30 | Attribute() | simple.test |
15-
| Simple config | carrier.py:35 | 35 | Attribute() | simple.test |
16-
| Simple config | deep.py:22 | 22 | x | simple.test |
17-
| Simple config | test.py:3 | 3 | SOURCE | simple.test |
18-
| Simple config | test.py:7 | 7 | s | simple.test |
19-
| Simple config | test.py:13 | 13 | arg | simple.test |
20-
| Simple config | test.py:17 | 17 | t | simple.test |
21-
| Simple config | test.py:33 | 33 | t | simple.test |
22-
| Simple config | test.py:41 | 41 | t | simple.test |
23-
| Simple config | test.py:78 | 78 | t | simple.test |
24-
| Simple config | test.py:83 | 83 | t | simple.test |
25-
| Simple config | test.py:89 | 89 | t | simple.test |
26-
| Simple config | test.py:93 | 93 | t | simple.test |
27-
| Simple config | test.py:97 | 97 | t | simple.test |
28-
| Simple config | test.py:101 | 101 | t | simple.test |
29-
| Simple config | test.py:106 | 106 | Attribute | simple.test |
30-
| Simple config | test.py:111 | 111 | Attribute | simple.test |
31-
| Simple config | test.py:132 | 132 | t | simple.test |
32-
| Simple config | test.py:142 | 142 | t | simple.test |
33-
| Simple config | test.py:153 | 153 | t | simple.test |
34-
| Simple config | test.py:156 | 156 | unsafe | simple.test |
35-
| Simple config | test.py:160 | 160 | t | simple.test |
36-
| Simple config | test.py:165 | 165 | s | simple.test |
37-
| Simple config | test.py:172 | 172 | Subscript | simple.test |
38-
| Simple config | test.py:173 | 173 | Subscript | simple.test |
39-
| Simple config | test.py:180 | 180 | t | simple.test |
40-
| Simple config | test.py:182 | 182 | t | simple.test |
41-
| Simple config | test.py:184 | 184 | t | simple.test |
42-
| Simple config | test.py:186 | 186 | t | simple.test |
43-
| Simple config | test.py:197 | 197 | t | simple.test |
44-
| Simple config | test.py:199 | 199 | t | simple.test |
45-
| Simple config | test.py:214 | 214 | x | simple.test |
46-
| Taint carrier config | carrier.py:18 | 18 | Attribute | simple.test |
47-
| Taint carrier config | carrier.py:22 | 22 | Attribute() | simple.test |
48-
| Taint carrier config | carrier.py:26 | 26 | Attribute() | simple.test |
49-
| Taint carrier config | carrier.py:30 | 30 | Attribute() | simple.test |
50-
| Taint carrier config | carrier.py:35 | 35 | Attribute() | simple.test |
51-
| Taint carrier config | deep.py:22 | 22 | x | simple.test |
52-
| Taint carrier config | test.py:3 | 3 | SOURCE | simple.test |
53-
| Taint carrier config | test.py:7 | 7 | s | simple.test |
54-
| Taint carrier config | test.py:13 | 13 | arg | simple.test |
55-
| Taint carrier config | test.py:17 | 17 | t | simple.test |
56-
| Taint carrier config | test.py:33 | 33 | t | simple.test |
57-
| Taint carrier config | test.py:41 | 41 | t | simple.test |
58-
| Taint carrier config | test.py:78 | 78 | t | simple.test |
59-
| Taint carrier config | test.py:83 | 83 | t | simple.test |
60-
| Taint carrier config | test.py:89 | 89 | t | simple.test |
61-
| Taint carrier config | test.py:93 | 93 | t | simple.test |
62-
| Taint carrier config | test.py:97 | 97 | t | simple.test |
63-
| Taint carrier config | test.py:101 | 101 | t | simple.test |
64-
| Taint carrier config | test.py:106 | 106 | Attribute | simple.test |
65-
| Taint carrier config | test.py:111 | 111 | Attribute | simple.test |
66-
| Taint carrier config | test.py:132 | 132 | t | simple.test |
67-
| Taint carrier config | test.py:142 | 142 | t | simple.test |
68-
| Taint carrier config | test.py:153 | 153 | t | simple.test |
69-
| Taint carrier config | test.py:156 | 156 | unsafe | simple.test |
70-
| Taint carrier config | test.py:160 | 160 | t | simple.test |
71-
| Taint carrier config | test.py:165 | 165 | s | simple.test |
72-
| Taint carrier config | test.py:172 | 172 | Subscript | simple.test |
73-
| Taint carrier config | test.py:173 | 173 | Subscript | simple.test |
74-
| Taint carrier config | test.py:180 | 180 | t | simple.test |
75-
| Taint carrier config | test.py:182 | 182 | t | simple.test |
76-
| Taint carrier config | test.py:184 | 184 | t | simple.test |
77-
| Taint carrier config | test.py:186 | 186 | t | simple.test |
78-
| Taint carrier config | test.py:197 | 197 | t | simple.test |
79-
| Taint carrier config | test.py:199 | 199 | t | simple.test |
80-
| Taint carrier config | test.py:214 | 214 | x | simple.test |
1+
| carrier.py:18 | Simple config | Attribute | simple.test |
2+
| carrier.py:18 | Taint carrier config | Attribute | simple.test |
3+
| carrier.py:22 | Simple config | Attribute() | simple.test |
4+
| carrier.py:22 | Taint carrier config | Attribute() | simple.test |
5+
| carrier.py:26 | Simple config | Attribute() | simple.test |
6+
| carrier.py:26 | Taint carrier config | Attribute() | simple.test |
7+
| carrier.py:30 | Simple config | Attribute() | simple.test |
8+
| carrier.py:30 | Taint carrier config | Attribute() | simple.test |
9+
| carrier.py:35 | Simple config | Attribute() | simple.test |
10+
| carrier.py:35 | Taint carrier config | Attribute() | simple.test |
11+
| deep.py:22 | Simple config | x | simple.test |
12+
| deep.py:22 | Taint carrier config | x | simple.test |
13+
| rockpaperscissors.py:13 | Rock-paper-scissors config | SCISSORS | scissors |
14+
| rockpaperscissors.py:16 | Rock-paper-scissors config | ROCK | rock |
15+
| rockpaperscissors.py:21 | Rock-paper-scissors config | y | paper |
16+
| rockpaperscissors.py:26 | Rock-paper-scissors config | y | paper |
17+
| rockpaperscissors.py:31 | Rock-paper-scissors config | x | rock |
18+
| rockpaperscissors.py:32 | Rock-paper-scissors config | y | rock |
19+
| test.py:3 | Simple config | SOURCE | simple.test |
20+
| test.py:3 | Taint carrier config | SOURCE | simple.test |
21+
| test.py:7 | Simple config | s | simple.test |
22+
| test.py:7 | Taint carrier config | s | simple.test |
23+
| test.py:13 | Simple config | arg | simple.test |
24+
| test.py:13 | Taint carrier config | arg | simple.test |
25+
| test.py:17 | Simple config | t | simple.test |
26+
| test.py:17 | Taint carrier config | t | simple.test |
27+
| test.py:33 | Simple config | t | simple.test |
28+
| test.py:33 | Taint carrier config | t | simple.test |
29+
| test.py:41 | Simple config | t | simple.test |
30+
| test.py:41 | Taint carrier config | t | simple.test |
31+
| test.py:78 | Simple config | t | simple.test |
32+
| test.py:78 | Taint carrier config | t | simple.test |
33+
| test.py:83 | Simple config | t | simple.test |
34+
| test.py:83 | Taint carrier config | t | simple.test |
35+
| test.py:89 | Simple config | t | simple.test |
36+
| test.py:89 | Taint carrier config | t | simple.test |
37+
| test.py:93 | Simple config | t | simple.test |
38+
| test.py:93 | Taint carrier config | t | simple.test |
39+
| test.py:97 | Simple config | t | simple.test |
40+
| test.py:97 | Taint carrier config | t | simple.test |
41+
| test.py:101 | Simple config | t | simple.test |
42+
| test.py:101 | Taint carrier config | t | simple.test |
43+
| test.py:106 | Simple config | Attribute | simple.test |
44+
| test.py:106 | Taint carrier config | Attribute | simple.test |
45+
| test.py:111 | Simple config | Attribute | simple.test |
46+
| test.py:111 | Taint carrier config | Attribute | simple.test |
47+
| test.py:122 | Basic custom config | t | simple.test |
48+
| test.py:130 | Basic custom config | t | simple.test |
49+
| test.py:132 | Simple config | t | simple.test |
50+
| test.py:132 | Taint carrier config | t | simple.test |
51+
| test.py:140 | Basic custom config | t | simple.test |
52+
| test.py:142 | Simple config | t | simple.test |
53+
| test.py:142 | Taint carrier config | t | simple.test |
54+
| test.py:151 | Basic custom config | t | simple.test |
55+
| test.py:153 | Simple config | t | simple.test |
56+
| test.py:153 | Taint carrier config | t | simple.test |
57+
| test.py:156 | Simple config | unsafe | simple.test |
58+
| test.py:156 | Taint carrier config | unsafe | simple.test |
59+
| test.py:160 | Simple config | t | simple.test |
60+
| test.py:160 | Taint carrier config | t | simple.test |
61+
| test.py:165 | Simple config | s | simple.test |
62+
| test.py:165 | Taint carrier config | s | simple.test |
63+
| test.py:172 | Simple config | Subscript | simple.test |
64+
| test.py:172 | Taint carrier config | Subscript | simple.test |
65+
| test.py:173 | Simple config | Subscript | simple.test |
66+
| test.py:173 | Taint carrier config | Subscript | simple.test |
67+
| test.py:180 | Simple config | t | simple.test |
68+
| test.py:180 | Taint carrier config | t | simple.test |
69+
| test.py:182 | Simple config | t | simple.test |
70+
| test.py:182 | Taint carrier config | t | simple.test |
71+
| test.py:184 | Simple config | t | simple.test |
72+
| test.py:184 | Taint carrier config | t | simple.test |
73+
| test.py:186 | Simple config | t | simple.test |
74+
| test.py:186 | Taint carrier config | t | simple.test |
75+
| test.py:197 | Simple config | t | simple.test |
76+
| test.py:197 | Taint carrier config | t | simple.test |
77+
| test.py:199 | Simple config | t | simple.test |
78+
| test.py:199 | Taint carrier config | t | simple.test |
79+
| test.py:214 | Simple config | x | simple.test |
80+
| test.py:214 | Taint carrier config | x | simple.test |

python/ql/test/library-tests/taint/config/TestSink.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ import TaintLib
55
from TestConfig config, DataFlow::Node sink, TaintKind kind
66

77
where config.isSink(sink, kind)
8-
select config, sink.getLocation().toString(), sink.getLocation().getStartLine(), sink.toString(), kind
8+
select sink.getLocation().toString(), config, sink.toString(), kind
Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
WARNING: Type CallContext has been deprecated and may be removed in future (Contexts.ql:6,6-17)
22
WARNING: Type CallContext has been deprecated and may be removed in future (Contexts.ql:7,14-25)
3-
| p0 = Command injection | Function isEscapedSql |
4-
| p0 = Command injection | Function isValidCommand |
5-
| p0 = SQL injection | Function isEscapedSql |
6-
| p0 = SQL injection | Function isValidCommand |
7-
| p0 = basic.custom | Function hub |
8-
| p0 = explicit.carrier | Function hub |
9-
| p0 = paper | Function paper |
10-
| p0 = paper | Function scissors |
11-
| p0 = rock | Function paper |
12-
| p0 = scissors | Function paper |
13-
| p0 = scissors | Function rock |
14-
| p0 = scissors | Function scissors |
15-
| p0 = simple.test | Function f1 |
16-
| p0 = simple.test | Function f2 |
17-
| p0 = simple.test | Function f3 |
18-
| p0 = simple.test | Function f4 |
19-
| p0 = simple.test | Function f5 |
20-
| p0 = simple.test | Function f6 |
21-
| p0 = simple.test | Function hub |
22-
| p0 = simple.test | Function sink |
23-
| p0 = simple.test | Function sink2 |
24-
| p0.attr = simple.test | Function get_attr |
25-
| p0.attr = simple.test | Function hub |
26-
| p0.x = simple.test | Function hub |
27-
| p0.x = simple.test | Function x_sink |
28-
| p1 = explicit.carrier | Function __init__ |
29-
| p1 = simple.test | Function __init__ |
30-
| p1 = simple.test | Function sink3 |
3+
| carrier.py:4 | p1 = explicit.carrier | Function __init__ |
4+
| carrier.py:4 | p1 = simple.test | Function __init__ |
5+
| carrier.py:10 | p0.attr = simple.test | Function get_attr |
6+
| carrier.py:13 | p0 = explicit.carrier | Function hub |
7+
| carrier.py:13 | p0.attr = simple.test | Function hub |
8+
| deep.py:2 | p0 = simple.test | Function f1 |
9+
| deep.py:5 | p0 = simple.test | Function f2 |
10+
| deep.py:8 | p0 = simple.test | Function f3 |
11+
| deep.py:11 | p0 = simple.test | Function f4 |
12+
| deep.py:14 | p0 = simple.test | Function f5 |
13+
| deep.py:17 | p0 = simple.test | Function f6 |
14+
| rockpaperscissors.py:3 | p0 = scissors | Function rock |
15+
| rockpaperscissors.py:6 | p0 = paper | Function paper |
16+
| rockpaperscissors.py:6 | p0 = rock | Function paper |
17+
| rockpaperscissors.py:6 | p0 = scissors | Function paper |
18+
| rockpaperscissors.py:9 | p0 = paper | Function scissors |
19+
| rockpaperscissors.py:9 | p0 = scissors | Function scissors |
20+
| sanitizer.py:3 | p0 = Command injection | Function isEscapedSql |
21+
| sanitizer.py:3 | p0 = SQL injection | Function isEscapedSql |
22+
| sanitizer.py:5 | p0 = Command injection | Function isValidCommand |
23+
| sanitizer.py:5 | p0 = SQL injection | Function isValidCommand |
24+
| test.py:12 | p0 = simple.test | Function sink |
25+
| test.py:46 | p0 = simple.test | Function sink2 |
26+
| test.py:49 | p1 = simple.test | Function sink3 |
27+
| test.py:72 | p0 = basic.custom | Function hub |
28+
| test.py:72 | p0 = simple.test | Function hub |
29+
| test.py:72 | p0.x = simple.test | Function hub |
30+
| test.py:105 | p0.x = simple.test | Function x_sink |

python/ql/test/library-tests/taint/general/Contexts.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ import TaintLib
66
from CallContext context, Scope s
77
where exists(CallContext caller | caller.getCallee(_) = context) and
88
context.appliesToScope(s)
9-
select context, s.toString()
9+
select s.getLocation().toString(), context, s.toString()
1010

0 commit comments

Comments
 (0)