Skip to content

Commit d516db6

Browse files
authored
Merge pull request github#15903 from yoff/python/test-MaD-keyword-argument
Python: test MaD syntax for keyword argument
2 parents dea9229 + c520cb6 commit d516db6

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ extensions:
33
pack: codeql/python-all
44
extensible: summaryModel
55
data:
6-
- ["foo", "Member[MS_identity]", "Argument[0]", "ReturnValue", "value"]
6+
- ["foo", "Member[MS_identity]", "Argument[0,x:]", "ReturnValue", "value"]
77
- ["foo", "Member[MS_apply_lambda]", "Argument[1]", "Argument[0].Parameter[0]", "value"]
88
- ["foo", "Member[MS_apply_lambda]", "Argument[0].ReturnValue", "ReturnValue", "value"]
99
- ["foo", "Member[MS_reversed]", "Argument[0].ListElement", "ReturnValue.ListElement", "value"]
@@ -17,4 +17,5 @@ extensions:
1717
- ["foo", "Member[MS_append_to_list]", "Argument[1]", "ReturnValue", "taint"]
1818
- ["foo", "Member[MS_spread]", "Argument[0]", "ReturnValue.TupleElement[0]", "value"]
1919
- ["foo", "Member[MS_spread]", "Argument[1]", "ReturnValue.TupleElement[1]", "value"]
20+
- ["foo", "Member[MS_spread_all]", "Argument[0]", "ReturnValue.TupleElement[0,1]", "value"]
2021
- ["json", "Member[MS_loads]", "Argument[0]", "ReturnValue", "taint"]

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ extensions:
33
pack: codeql/python-all
44
extensible: summaryModel
55
data:
6-
- ["foo", "Member[MS_identity]", "Argument[0]", "ReturnValue", "value"]
6+
- ["foo", "Member[MS_identity]", "Argument[0,x:]", "ReturnValue", "value"]
77
- ["foo", "Member[MS_apply_lambda]", "Argument[1]", "Argument[0].Parameter[0]", "value"]
88
- ["foo", "Member[MS_apply_lambda]", "Argument[0].ReturnValue", "ReturnValue", "value"]
99
- ["foo", "Member[MS_reversed]", "Argument[0].ListElement", "ReturnValue.ListElement", "value"]
@@ -17,4 +17,5 @@ extensions:
1717
- ["foo", "Member[MS_append_to_list]", "Argument[1]", "ReturnValue", "taint"]
1818
- ["foo", "Member[MS_spread]", "Argument[0]", "ReturnValue.TupleElement[0]", "value"]
1919
- ["foo", "Member[MS_spread]", "Argument[1]", "ReturnValue.TupleElement[1]", "value"]
20+
- ["foo", "Member[MS_spread_all]", "Argument[0]", "ReturnValue.TupleElement[0,1]", "value"]
2021
- ["json", "Member[MS_loads]", "Argument[0]", "ReturnValue", "taint"]

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,16 @@ 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, MS_spread
33+
from foo import MS_identity, MS_apply_lambda, MS_reversed, MS_list_map, MS_append_to_list, MS_spread, MS_spread_all
3434

3535
# Simple summary
3636
via_identity = MS_identity(SOURCE)
3737
SINK(via_identity) # $ flow="SOURCE, l:-1 -> via_identity"
3838

39+
# Simple summary keyword
40+
via_identity_kw = MS_identity(x = SOURCE)
41+
SINK(via_identity_kw) # $ flow="SOURCE, l:-1 -> via_identity_kw"
42+
3943
# Lambda summary
4044
via_lambda = MS_apply_lambda(lambda x: [x], SOURCE)
4145
SINK(via_lambda[0]) # $ flow="SOURCE, l:-1 -> via_lambda[0]"
@@ -114,6 +118,10 @@ def explicit_identity(x):
114118
SINK_F(x)
115119
SINK(y) # $ flow="SOURCE, l:-2 -> y"
116120

121+
a, b = MS_spread_all(SOURCE)
122+
SINK(a) # $ flow="SOURCE, l:-1 -> a"
123+
SINK(b) # $ flow="SOURCE, l:-2 -> b"
124+
117125
# Modeled flow-summary is not value preserving
118126
from json import MS_loads as json_loads
119127

0 commit comments

Comments
 (0)