File tree Expand file tree Collapse file tree 8 files changed +34
-0
lines changed
src/semmle/python/security
test/library-tests/taint/general Expand file tree Collapse file tree 8 files changed +34
-0
lines changed Original file line number Diff line number Diff line change @@ -1267,6 +1267,8 @@ library module TaintFlowImplementation {
12671267 Filters:: isinstance ( test .getTest ( ) , c , var .getSourceVariable ( ) .getAUse ( ) )
12681268 and c .refersTo ( cls )
12691269 |
1270+ test .getSense ( ) = true and not exists ( kind .getClass ( ) )
1271+ or
12701272 test .getSense ( ) = true and kind .getClass ( ) .getAnImproperSuperType ( ) = cls
12711273 or
12721274 test .getSense ( ) = false and not kind .getClass ( ) .getAnImproperSuperType ( ) = cls
Original file line number Diff line number Diff line change 182182| test.py:186 | ArgumentRefinement(t_3) | test.py:178 | Taint simple.test | SOURCE |
183183| test.py:189 | FALSEY | test.py:189 | Taint falsey | FALSEY |
184184| test.py:191 | Pi(t_0) [true] | test.py:189 | Taint falsey | FALSEY |
185+ | test.py:194 | phi(t_3, t_5) | test.py:195 | Taint simple.test | SOURCE |
186+ | test.py:195 | SOURCE | test.py:195 | Taint simple.test | SOURCE |
187+ | test.py:196 | ArgumentRefinement(t_0) | test.py:195 | Taint simple.test | SOURCE |
188+ | test.py:197 | ArgumentRefinement(t_2) | test.py:195 | Taint simple.test | SOURCE |
189+ | test.py:197 | Pi(t_1) [true] | test.py:195 | Taint simple.test | SOURCE |
190+ | test.py:199 | ArgumentRefinement(t_4) | test.py:195 | Taint simple.test | SOURCE |
191+ | test.py:199 | Pi(t_1) [false] | test.py:195 | Taint simple.test | SOURCE |
Original file line number Diff line number Diff line change 222222| Taint simple.test | test.py:180 | t | |
223223| Taint simple.test | test.py:183 | t | |
224224| Taint simple.test | test.py:186 | t | |
225+ | Taint simple.test | test.py:195 | SOURCE | |
226+ | Taint simple.test | test.py:196 | t | |
227+ | Taint simple.test | test.py:197 | t | |
228+ | Taint simple.test | test.py:199 | t | |
225229| Taint {simple.test} | test.py:169 | Dict | |
226230| Taint {simple.test} | test.py:171 | d | |
227231| Taint {simple.test} | test.py:173 | y | |
Original file line number Diff line number Diff line change 3434| simple.test | test.py:169 | 173 | Subscript | simple.test |
3535| simple.test | test.py:178 | 180 | t | simple.test |
3636| simple.test | test.py:178 | 186 | t | simple.test |
37+ | simple.test | test.py:195 | 197 | t | simple.test |
38+ | simple.test | test.py:195 | 199 | t | simple.test |
Original file line number Diff line number Diff line change 4242| test.py:169 | SOURCE | simple.test |
4343| test.py:178 | SOURCE | simple.test |
4444| test.py:189 | FALSEY | falsey |
45+ | test.py:195 | SOURCE | simple.test |
Original file line number Diff line number Diff line change 178178| Taint simple.test | test.py:178 | SOURCE | | --> | Taint simple.test | test.py:180 | t | |
179179| Taint simple.test | test.py:178 | SOURCE | | --> | Taint simple.test | test.py:183 | t | |
180180| Taint simple.test | test.py:178 | SOURCE | | --> | Taint simple.test | test.py:186 | t | |
181+ | Taint simple.test | test.py:195 | SOURCE | | --> | Taint simple.test | test.py:196 | t | |
182+ | Taint simple.test | test.py:195 | SOURCE | | --> | Taint simple.test | test.py:197 | t | |
183+ | Taint simple.test | test.py:195 | SOURCE | | --> | Taint simple.test | test.py:199 | t | |
181184| Taint {simple.test} | test.py:169 | Dict | | --> | Taint {simple.test} | test.py:171 | d | |
182185| Taint {simple.test} | test.py:169 | Dict | | --> | Taint {simple.test} | test.py:175 | d | |
183186| Taint {simple.test} | test.py:171 | d | | --> | Taint {simple.test} | test.py:173 | y | |
Original file line number Diff line number Diff line change 184184| test.py:186 | t_4 | test.py:178 | Taint simple.test | SOURCE |
185185| test.py:189 | t_0 | test.py:189 | Taint falsey | FALSEY |
186186| test.py:191 | t_1 | test.py:189 | Taint falsey | FALSEY |
187+ | test.py:194 | t_6 | test.py:195 | Taint simple.test | SOURCE |
188+ | test.py:195 | t_0 | test.py:195 | Taint simple.test | SOURCE |
189+ | test.py:196 | t_1 | test.py:195 | Taint simple.test | SOURCE |
190+ | test.py:197 | t_2 | test.py:195 | Taint simple.test | SOURCE |
191+ | test.py:197 | t_3 | test.py:195 | Taint simple.test | SOURCE |
192+ | test.py:199 | t_4 | test.py:195 | Taint simple.test | SOURCE |
193+ | test.py:199 | t_5 | test.py:195 | Taint simple.test | SOURCE |
Original file line number Diff line number Diff line change @@ -190,3 +190,11 @@ def test_early_exit():
190190 if not t :
191191 return
192192 t
193+
194+ def flow_through_type_test_if_no_class ():
195+ t = SOURCE
196+ if isinstance (t , str ):
197+ SINK (t )
198+ else :
199+ SINK (t )
200+
You can’t perform that action at this time.
0 commit comments