@@ -36,18 +36,10 @@ def SINK_F(x):
36
36
via_identity = MS_identity (SOURCE )
37
37
SINK (via_identity ) # $ flow="SOURCE, l:-1 -> via_identity"
38
38
39
- tainted = MS_identity (TAINTED_STRING )
40
- ensure_tainted (tainted ) # $ tainted
41
-
42
-
43
39
# Lambda summary
44
40
via_lambda = MS_apply_lambda (lambda x : [x ], SOURCE )
45
41
SINK (via_lambda [0 ]) # $ flow="SOURCE, l:-1 -> via_lambda[0]"
46
42
47
- tainted_lambda = MS_apply_lambda (lambda x : [x ], TAINTED_STRING )
48
- ensure_tainted (tainted_lambda ) # $ tainted
49
-
50
-
51
43
# A lambda that breaks the flow
52
44
not_via_lambda = MS_apply_lambda (lambda x : 1 , SOURCE )
53
45
SINK_F (not_via_lambda )
@@ -59,8 +51,11 @@ def SINK_F(x):
59
51
via_reversed = MS_reversed ([SOURCE ])
60
52
SINK (via_reversed [0 ]) # $ flow="SOURCE, l:-1 -> via_reversed[0]"
61
53
62
- tainted_list = MS_reversed ([TAINTED_STRING ])
63
- ensure_tainted (tainted_list [0 ]) # $ tainted
54
+ tainted_list = MS_reversed (TAINTED_LIST )
55
+ ensure_tainted (
56
+ tainted_list , # $ tainted
57
+ tainted_list [0 ] # $ tainted
58
+ )
64
59
65
60
# Complex summaries
66
61
def box (x ):
@@ -69,34 +64,31 @@ def box(x):
69
64
via_map = MS_list_map (box , [SOURCE ])
70
65
SINK (via_map [0 ][0 ]) # $ flow="SOURCE, l:-1 -> via_map[0][0]"
71
66
72
- tainted_mapped = MS_list_map (box , [TAINTED_STRING ])
73
- ensure_tainted (tainted_mapped [0 ][0 ]) # $ tainted
67
+ tainted_mapped = MS_list_map (box , TAINTED_LIST )
68
+ ensure_tainted (
69
+ tainted_mapped , # $ tainted
70
+ tainted_mapped [0 ][0 ] # $ tainted
71
+ )
74
72
75
73
def explicit_identity (x ):
76
74
return x
77
75
78
76
via_map_explicit = MS_list_map (explicit_identity , [SOURCE ])
79
77
SINK (via_map_explicit [0 ]) # $ flow="SOURCE, l:-1 -> via_map_explicit[0]"
80
78
81
- tainted_mapped_explicit = MS_list_map (explicit_identity , [TAINTED_STRING ])
82
- tainted_mapped_explicit_implicit = MS_list_map (explicit_identity , TAINTED_LIST )
79
+ tainted_mapped_explicit = MS_list_map (explicit_identity , TAINTED_LIST )
83
80
ensure_tainted (
84
81
tainted_mapped_explicit , # $ tainted
85
- tainted_mapped_explicit [0 ], # $ tainted
86
- tainted_mapped_explicit_implicit , # $ tainted
87
- tainted_mapped_explicit_implicit [0 ] # $ tainted
82
+ tainted_mapped_explicit [0 ] # $ tainted
88
83
)
89
84
90
85
via_map_summary = MS_list_map (MS_identity , [SOURCE ])
91
86
SINK (via_map_summary [0 ]) # $ flow="SOURCE, l:-1 -> via_map_summary[0]"
92
87
93
- tainted_mapped_summary = MS_list_map (MS_identity , [TAINTED_STRING ])
94
- tainted_mapped_summary_implicit = MS_list_map (MS_identity , TAINTED_LIST )
88
+ tainted_mapped_summary = MS_list_map (MS_identity , TAINTED_LIST )
95
89
ensure_tainted (
96
90
tainted_mapped_summary , # $ tainted
97
- tainted_mapped_summary [0 ], # $ tainted
98
- tainted_mapped_summary_implicit , # $ tainted
99
- tainted_mapped_summary_implicit [0 ] # $ tainted
91
+ tainted_mapped_summary [0 ] # $ tainted
100
92
)
101
93
102
94
via_append_el = MS_append_to_list ([], SOURCE )
@@ -111,13 +103,10 @@ def explicit_identity(x):
111
103
via_append = MS_append_to_list ([SOURCE ], NONSOURCE )
112
104
SINK (via_append [0 ]) # $ flow="SOURCE, l:-1 -> via_append[0]"
113
105
114
- tainted_list = MS_append_to_list ([TAINTED_STRING ], NONSOURCE )
115
106
tainted_list_implicit = MS_append_to_list (TAINTED_LIST , NONSOURCE )
116
107
ensure_tainted (
117
108
tainted_list , # $ tainted
118
- tainted_list [0 ], # $ tainted
119
- tainted_list_implicit , # $ tainted
120
- tainted_list_implicit [0 ] # $ tainted
109
+ tainted_list [0 ] # $ tainted
121
110
)
122
111
123
112
# Modeled flow-summary is not value preserving
0 commit comments