Skip to content

Commit 1498145

Browse files
committed
Python: Highlight that any comparison will clear taint
1 parent 80997a3 commit 1498145

File tree

6 files changed

+36
-0
lines changed

6 files changed

+36
-0
lines changed

python/ql/test/library-tests/taint/general/TestDefn.expected

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,3 +93,6 @@
9393
| test.py:208 | List | test.py:208 | Taint sequence of simple.test | seq |
9494
| test.py:209 | For | test.py:209 | Taint simple.test | i |
9595
| test.py:213 | For | test.py:213 | Taint simple.test | x |
96+
| test.py:217 | SOURCE | test.py:217 | Taint simple.test | tainted |
97+
| test.py:223 | SOURCE | test.py:223 | Taint simple.test | tainted |
98+
| test.py:229 | SOURCE | test.py:229 | Taint simple.test | tainted |

python/ql/test/library-tests/taint/general/TestSink.expected

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,4 @@
3838
| simple.test | test.py:195 | 197 | t | simple.test |
3939
| simple.test | test.py:195 | 199 | t | simple.test |
4040
| simple.test | test.py:208 | 214 | x | simple.test |
41+
| simple.test | test.py:217 | 220 | tainted | simple.test |

python/ql/test/library-tests/taint/general/TestSource.expected

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,6 @@
4545
| test.py:195 | SOURCE | simple.test |
4646
| test.py:202 | ITERABLE_SOURCE | iterable.simple |
4747
| test.py:208 | SOURCE | simple.test |
48+
| test.py:217 | SOURCE | simple.test |
49+
| test.py:223 | SOURCE | simple.test |
50+
| test.py:229 | SOURCE | simple.test |

python/ql/test/library-tests/taint/general/TestStep.expected

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,3 +199,7 @@
199199
| simple.test | test.py:210 | i | | --> | iterable.simple | test.py:213 | flow_in_generator() | |
200200
| simple.test | test.py:210 | i | | --> | sequence of simple.test | test.py:213 | flow_in_generator() | |
201201
| simple.test | test.py:213 | For | | --> | simple.test | test.py:214 | x | |
202+
| simple.test | test.py:217 | SOURCE | | --> | simple.test | test.py:218 | tainted | |
203+
| simple.test | test.py:217 | SOURCE | | --> | simple.test | test.py:220 | tainted | |
204+
| simple.test | test.py:223 | SOURCE | | --> | simple.test | test.py:224 | tainted | |
205+
| simple.test | test.py:229 | SOURCE | | --> | simple.test | test.py:230 | tainted | |

python/ql/test/library-tests/taint/general/TestVar.expected

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,3 +193,10 @@
193193
| test.py:213 | x_0 | test.py:213 | Taint simple.test |
194194
| test.py:213 | x_1 | test.py:213 | Taint simple.test |
195195
| test.py:214 | x_2 | test.py:214 | Taint simple.test |
196+
| test.py:217 | tainted_0 | test.py:217 | Taint simple.test |
197+
| test.py:220 | tainted_3 | test.py:220 | Taint simple.test |
198+
| test.py:220 | tainted_4 | test.py:220 | Taint simple.test |
199+
| test.py:220 | tainted_5 | test.py:220 | Taint simple.test |
200+
| test.py:223 | tainted_0 | test.py:223 | Taint simple.test |
201+
| test.py:225 | tainted_1 | test.py:225 | Taint simple.test |
202+
| test.py:229 | tainted_0 | test.py:229 | Taint simple.test |

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,3 +213,21 @@ def flow_from_generator():
213213
for x in flow_in_generator():
214214
SINK(x)
215215

216+
def const_eq_clears_taint():
217+
tainted = SOURCE
218+
if tainted == "safe":
219+
SINK(tainted) # safe
220+
SINK(tainted) # unsafe
221+
222+
def const_eq_clears_taint2():
223+
tainted = SOURCE
224+
if tainted != "safe":
225+
return
226+
SINK(tainted) # safe
227+
228+
def non_const_eq_preserves_taint(x):
229+
tainted = SOURCE
230+
if tainted == tainted:
231+
SINK(tainted) # unsafe
232+
if tainted == x:
233+
SINK(tainted) # unsafe

0 commit comments

Comments
 (0)