@@ -36,18 +36,10 @@ def SINK_F(x):
3636via_identity = MS_identity (SOURCE )
3737SINK (via_identity ) # $ flow="SOURCE, l:-1 -> via_identity"
3838
39- tainted = MS_identity (TAINTED_STRING )
40- ensure_tainted (tainted ) # $ tainted
41-
42-
4339# Lambda summary
4440via_lambda = MS_apply_lambda (lambda x : [x ], SOURCE )
4541SINK (via_lambda [0 ]) # $ flow="SOURCE, l:-1 -> via_lambda[0]"
4642
47- tainted_lambda = MS_apply_lambda (lambda x : [x ], TAINTED_STRING )
48- ensure_tainted (tainted_lambda ) # $ tainted
49-
50-
5143# A lambda that breaks the flow
5244not_via_lambda = MS_apply_lambda (lambda x : 1 , SOURCE )
5345SINK_F (not_via_lambda )
@@ -59,8 +51,11 @@ def SINK_F(x):
5951via_reversed = MS_reversed ([SOURCE ])
6052SINK (via_reversed [0 ]) # $ flow="SOURCE, l:-1 -> via_reversed[0]"
6153
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+ )
6459
6560# Complex summaries
6661def box (x ):
@@ -69,34 +64,31 @@ def box(x):
6964via_map = MS_list_map (box , [SOURCE ])
7065SINK (via_map [0 ][0 ]) # $ flow="SOURCE, l:-1 -> via_map[0][0]"
7166
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+ )
7472
7573def explicit_identity (x ):
7674 return x
7775
7876via_map_explicit = MS_list_map (explicit_identity , [SOURCE ])
7977SINK (via_map_explicit [0 ]) # $ flow="SOURCE, l:-1 -> via_map_explicit[0]"
8078
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 )
8380ensure_tainted (
8481 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
8883 )
8984
9085via_map_summary = MS_list_map (MS_identity , [SOURCE ])
9186SINK (via_map_summary [0 ]) # $ flow="SOURCE, l:-1 -> via_map_summary[0]"
9287
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 )
9589ensure_tainted (
9690 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
10092 )
10193
10294via_append_el = MS_append_to_list ([], SOURCE )
@@ -111,13 +103,10 @@ def explicit_identity(x):
111103via_append = MS_append_to_list ([SOURCE ], NONSOURCE )
112104SINK (via_append [0 ]) # $ flow="SOURCE, l:-1 -> via_append[0]"
113105
114- tainted_list = MS_append_to_list ([TAINTED_STRING ], NONSOURCE )
115106tainted_list_implicit = MS_append_to_list (TAINTED_LIST , NONSOURCE )
116107ensure_tainted (
117108 tainted_list , # $ tainted
118- tainted_list [0 ], # $ tainted
119- tainted_list_implicit , # $ tainted
120- tainted_list_implicit [0 ] # $ tainted
109+ tainted_list [0 ] # $ tainted
121110 )
122111
123112# Modeled flow-summary is not value preserving
0 commit comments