mirror of
https://github.com/github/codeql.git
synced 2026-04-26 01:05:15 +02:00
Python: test the MaD path for constructor calls
This commit is contained in:
@@ -18,4 +18,6 @@ extensions:
|
||||
- ["foo", "Member[MS_spread]", "Argument[0]", "ReturnValue.TupleElement[0]", "value"]
|
||||
- ["foo", "Member[MS_spread]", "Argument[1]", "ReturnValue.TupleElement[1]", "value"]
|
||||
- ["foo", "Member[MS_spread_all]", "Argument[0]", "ReturnValue.TupleElement[0,1]", "value"]
|
||||
- ["foo", "Member[MS_Class].Call", "Argument[0, x:]", "ReturnValue", "value"]
|
||||
- ["foo", "Member[MS_Class_transitive].Subclass.Call", "Argument[0, x:]", "ReturnValue", "value"]
|
||||
- ["json", "Member[MS_loads]", "Argument[0]", "ReturnValue", "taint"]
|
||||
|
||||
@@ -122,6 +122,24 @@ a, b = MS_spread_all(SOURCE)
|
||||
SINK(a) # $ flow="SOURCE, l:-1 -> a"
|
||||
SINK(b) # $ flow="SOURCE, l:-2 -> b"
|
||||
|
||||
from foo import MS_Class, MS_Class_transitive
|
||||
|
||||
# Class summaries
|
||||
class_via_positional = MS_Class(SOURCE)
|
||||
SINK(class_via_positional) # $ flow="SOURCE, l:-1 -> class_via_positional"
|
||||
|
||||
class_via_kw = MS_Class(x = SOURCE)
|
||||
SINK(class_via_kw) # $ flow="SOURCE, l:-1 -> class_via_kw"
|
||||
|
||||
class C(MS_Class_transitive):
|
||||
pass
|
||||
|
||||
subclass_via_positional = C(SOURCE)
|
||||
SINK(subclass_via_positional) # $ flow="SOURCE, l:-1 -> subclass_via_positional"
|
||||
|
||||
subclass_via_kw = C(x = SOURCE)
|
||||
SINK(subclass_via_kw) # $ flow="SOURCE, l:-1 -> subclass_via_kw"
|
||||
|
||||
# Modeled flow-summary is not value preserving
|
||||
from json import MS_loads as json_loads
|
||||
|
||||
|
||||
Reference in New Issue
Block a user