Skip to content

Commit 4ac8dd7

Browse files
authored
Merge pull request #15855 from yoff/python/add-MaD-test-tuple-output
Python: Add test for `ReturnValue.TupleElement[n]`
2 parents 73c4fe0 + 6d8d106 commit 4ac8dd7

File tree

3 files changed

+12
-1
lines changed

3 files changed

+12
-1
lines changed

python/ql/test/experimental/dataflow/model-summaries/InlineTaintTest.ext.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,6 @@ extensions:
1515
- ["foo", "Member[MS_append_to_list]", "Argument[1]", "ReturnValue.ListElement", "value"]
1616
- ["foo", "Member[MS_append_to_list]", "Argument[0]", "ReturnValue", "taint"]
1717
- ["foo", "Member[MS_append_to_list]", "Argument[1]", "ReturnValue", "taint"]
18+
- ["foo", "Member[MS_spread]", "Argument[0]", "ReturnValue.TupleElement[0]", "value"]
19+
- ["foo", "Member[MS_spread]", "Argument[1]", "ReturnValue.TupleElement[1]", "value"]
1820
- ["json", "Member[MS_loads]", "Argument[0]", "ReturnValue", "taint"]

python/ql/test/experimental/dataflow/model-summaries/NormalDataflowTest.ext.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,6 @@ extensions:
1515
- ["foo", "Member[MS_append_to_list]", "Argument[1]", "ReturnValue.ListElement", "value"]
1616
- ["foo", "Member[MS_append_to_list]", "Argument[0]", "ReturnValue", "taint"]
1717
- ["foo", "Member[MS_append_to_list]", "Argument[1]", "ReturnValue", "taint"]
18+
- ["foo", "Member[MS_spread]", "Argument[0]", "ReturnValue.TupleElement[0]", "value"]
19+
- ["foo", "Member[MS_spread]", "Argument[1]", "ReturnValue.TupleElement[1]", "value"]
1820
- ["json", "Member[MS_loads]", "Argument[0]", "ReturnValue", "taint"]

python/ql/test/experimental/dataflow/model-summaries/model_summaries.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def SINK_F(x):
3030
ensure_tainted = ensure_not_tainted = print
3131
TAINTED_STRING = "TAINTED_STRING"
3232

33-
from foo import MS_identity, MS_apply_lambda, MS_reversed, MS_list_map, MS_append_to_list
33+
from foo import MS_identity, MS_apply_lambda, MS_reversed, MS_list_map, MS_append_to_list, MS_spread
3434

3535
# Simple summary
3636
via_identity = MS_identity(SOURCE)
@@ -107,6 +107,13 @@ def explicit_identity(x):
107107
tainted_list[0], # $ tainted
108108
)
109109

110+
a, b = MS_spread(SOURCE, NONSOURCE)
111+
SINK(a) # $ flow="SOURCE, l:-1 -> a"
112+
SINK_F(b)
113+
x, y = MS_spread(NONSOURCE, SOURCE)
114+
SINK_F(x)
115+
SINK(y) # $ flow="SOURCE, l:-2 -> y"
116+
110117
# Modeled flow-summary is not value preserving
111118
from json import MS_loads as json_loads
112119

0 commit comments

Comments
 (0)