mirror of
https://github.com/github/codeql.git
synced 2026-04-26 01:05:15 +02:00
Merge pull request #16558 from owen-mc/go/sync-external-flow
Go: sync ExternalFlow.qll
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
category: feature
|
||||
---
|
||||
* When writing models-as-data models, the receiver is now referred to as `Argument[receiver]` rather than `Argument[-1]`.
|
||||
* Neutral models are now supported. They have no effect except that a manual neutral summary model will stop a generated summary model from having any effect.
|
||||
@@ -5,6 +5,6 @@ extensions:
|
||||
data:
|
||||
- ["archive/tar", "", False, "FileInfoHeader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["archive/tar", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["archive/tar", "Header", True, "FileInfo", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["archive/tar", "Reader", True, "Next", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["archive/tar", "Writer", True, "WriteHeader", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["archive/tar", "Header", True, "FileInfo", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["archive/tar", "Reader", True, "Next", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["archive/tar", "Writer", True, "WriteHeader", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
|
||||
@@ -6,6 +6,6 @@ extensions:
|
||||
- ["archive/zip", "", False, "FileInfoHeader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["archive/zip", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["archive/zip", "", False, "OpenReader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["archive/zip", "File", True, "Open", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["archive/zip", "File", True, "OpenRaw", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["archive/zip", "Writer", True, "Copy", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["archive/zip", "File", True, "Open", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["archive/zip", "File", True, "OpenRaw", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["archive/zip", "Writer", True, "Copy", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
|
||||
@@ -11,12 +11,12 @@ extensions:
|
||||
- ["bufio", "", False, "ScanLines", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"]
|
||||
- ["bufio", "", False, "ScanRunes", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"]
|
||||
- ["bufio", "", False, "ScanWords", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"]
|
||||
- ["bufio", "Reader", True, "Peek", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["bufio", "Reader", True, "ReadBytes", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["bufio", "Reader", True, "ReadLine", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["bufio", "Reader", True, "ReadSlice", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["bufio", "Reader", True, "ReadString", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["bufio", "Reader", True, "Reset", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["bufio", "Scanner", True, "Bytes", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["bufio", "Scanner", True, "Text", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["bufio", "Writer", True, "Reset", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["bufio", "Reader", True, "Peek", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["bufio", "Reader", True, "ReadBytes", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["bufio", "Reader", True, "ReadLine", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["bufio", "Reader", True, "ReadSlice", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["bufio", "Reader", True, "ReadString", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["bufio", "Reader", True, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["bufio", "Scanner", True, "Bytes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["bufio", "Scanner", True, "Text", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["bufio", "Writer", True, "Reset", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
|
||||
@@ -41,8 +41,8 @@ extensions:
|
||||
- ["bytes", "", False, "TrimRightFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["bytes", "", False, "TrimSpace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["bytes", "", False, "TrimSuffix", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["bytes", "Buffer", True, "Bytes", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["bytes", "Buffer", True, "Next", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["bytes", "Buffer", True, "ReadBytes", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["bytes", "Buffer", True, "ReadString", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["bytes", "Reader", True, "Reset", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["bytes", "Buffer", True, "Bytes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["bytes", "Buffer", True, "Next", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["bytes", "Buffer", True, "ReadBytes", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["bytes", "Buffer", True, "ReadString", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["bytes", "Reader", True, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
|
||||
@@ -5,5 +5,5 @@ extensions:
|
||||
data:
|
||||
- ["compress/flate", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["compress/flate", "", False, "NewReaderDict", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["compress/flate", "Resetter", True, "Reset", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["compress/flate", "Writer", True, "Reset", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["compress/flate", "Resetter", True, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["compress/flate", "Writer", True, "Reset", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
|
||||
@@ -4,5 +4,5 @@ extensions:
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["compress/gzip", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["compress/gzip", "Reader", True, "Reset", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["compress/gzip", "Writer", True, "Reset", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["compress/gzip", "Reader", True, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["compress/gzip", "Writer", True, "Reset", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
|
||||
@@ -5,5 +5,5 @@ extensions:
|
||||
data:
|
||||
- ["compress/zlib", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["compress/zlib", "", False, "NewReaderDict", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["compress/zlib", "Resetter", True, "Reset", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["compress/zlib", "Writer", True, "Reset", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["compress/zlib", "Resetter", True, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["compress/zlib", "Writer", True, "Reset", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
|
||||
@@ -6,5 +6,5 @@ extensions:
|
||||
- ["container/heap", "", False, "Pop", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/heap", "", False, "Push", "", "", "Argument[1]", "Argument[0]", "taint", "manual"]
|
||||
- ["container/heap", "", False, "Remove", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/heap", "Interface", True, "Pop", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/heap", "Interface", True, "Push", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["container/heap", "Interface", True, "Pop", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/heap", "Interface", True, "Push", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
|
||||
@@ -3,23 +3,23 @@ extensions:
|
||||
pack: codeql/go-all
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["container/list", "Element", True, "Next", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/list", "Element", True, "Prev", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/list", "List", True, "Back", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/list", "List", True, "Front", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/list", "List", True, "Init", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/list", "List", True, "InsertAfter", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["container/list", "Element", True, "Next", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/list", "Element", True, "Prev", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/list", "List", True, "Back", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/list", "List", True, "Front", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/list", "List", True, "Init", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/list", "List", True, "InsertAfter", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["container/list", "List", True, "InsertAfter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/list", "List", True, "InsertBefore", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["container/list", "List", True, "InsertBefore", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["container/list", "List", True, "InsertBefore", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/list", "List", True, "MoveAfter", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["container/list", "List", True, "MoveBefore", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["container/list", "List", True, "MoveToBack", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["container/list", "List", True, "MoveToFront", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["container/list", "List", True, "PushBack", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["container/list", "List", True, "MoveAfter", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["container/list", "List", True, "MoveBefore", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["container/list", "List", True, "MoveToBack", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["container/list", "List", True, "MoveToFront", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["container/list", "List", True, "PushBack", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["container/list", "List", True, "PushBack", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/list", "List", True, "PushBackList", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["container/list", "List", True, "PushFront", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["container/list", "List", True, "PushBackList", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["container/list", "List", True, "PushFront", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["container/list", "List", True, "PushFront", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/list", "List", True, "PushFrontList", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["container/list", "List", True, "PushFrontList", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["container/list", "List", True, "Remove", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
|
||||
@@ -4,7 +4,7 @@ extensions:
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["container/ring", "Ring", True, "Link", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/ring", "Ring", True, "Move", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/ring", "Ring", True, "Next", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/ring", "Ring", True, "Prev", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/ring", "Ring", True, "Unlink", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/ring", "Ring", True, "Move", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/ring", "Ring", True, "Next", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/ring", "Ring", True, "Prev", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["container/ring", "Ring", True, "Unlink", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
|
||||
@@ -7,4 +7,4 @@ extensions:
|
||||
- ["context", "", False, "WithDeadline", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["context", "", False, "WithTimeout", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["context", "", False, "WithValue", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"]
|
||||
- ["context", "Context", True, "Value", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["context", "Context", True, "Value", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
|
||||
@@ -6,4 +6,4 @@ extensions:
|
||||
- ["database/sql/driver", "Conn", True, "Prepare", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["database/sql/driver", "ConnPrepareContext", True, "PrepareContext", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["database/sql/driver", "ValueConverter", True, "ConvertValue", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["database/sql/driver", "Valuer", True, "Value", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["database/sql/driver", "Valuer", True, "Value", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
|
||||
@@ -7,6 +7,6 @@ extensions:
|
||||
- ["database/sql", "Conn", True, "PrepareContext", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["database/sql", "DB", True, "Prepare", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["database/sql", "DB", True, "PrepareContext", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["database/sql", "Scanner", True, "Scan", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["database/sql", "Scanner", True, "Scan", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["database/sql", "Tx", True, "Prepare", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["database/sql", "Tx", True, "PrepareContext", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"]
|
||||
|
||||
@@ -13,3 +13,7 @@ extensions:
|
||||
pack: codeql/go-all
|
||||
extensible: summaryModel
|
||||
data: []
|
||||
- addsTo:
|
||||
pack: codeql/go-all
|
||||
extensible: neutralModel
|
||||
data: []
|
||||
|
||||
@@ -4,7 +4,7 @@ extensions:
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["encoding/csv", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["encoding/csv", "Reader", True, "Read", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["encoding/csv", "Reader", True, "ReadAll", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["encoding/csv", "Writer", True, "Write", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["encoding/csv", "Writer", True, "WriteAll", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["encoding/csv", "Reader", True, "Read", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["encoding/csv", "Reader", True, "ReadAll", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["encoding/csv", "Writer", True, "Write", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["encoding/csv", "Writer", True, "WriteAll", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
|
||||
@@ -4,9 +4,9 @@ extensions:
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["encoding/gob", "", False, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["encoding/gob", "Decoder", True, "Decode", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["encoding/gob", "Decoder", True, "DecodeValue", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["encoding/gob", "Encoder", True, "Encode", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["encoding/gob", "Encoder", True, "EncodeValue", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["encoding/gob", "GobDecoder", True, "GobDecode", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["encoding/gob", "GobEncoder", True, "GobEncode", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["encoding/gob", "Decoder", True, "Decode", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["encoding/gob", "Decoder", True, "DecodeValue", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["encoding/gob", "Encoder", True, "Encode", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["encoding/gob", "Encoder", True, "EncodeValue", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["encoding/gob", "GobDecoder", True, "GobDecode", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["encoding/gob", "GobEncoder", True, "GobEncode", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
|
||||
@@ -10,10 +10,10 @@ extensions:
|
||||
- ["encoding/json", "", False, "MarshalIndent", "", "", "Argument[0..2]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["encoding/json", "", False, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["encoding/json", "", False, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"]
|
||||
- ["encoding/json", "Decoder", True, "Buffered", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["encoding/json", "Decoder", True, "Decode", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["encoding/json", "Decoder", True, "Token", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["encoding/json", "Encoder", True, "Encode", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["encoding/json", "Encoder", True, "SetIndent", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["encoding/json", "Marshaler", True, "MarshalJSON", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["encoding/json", "Unmarshaler", True, "UnmarshalJSON", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["encoding/json", "Decoder", True, "Buffered", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["encoding/json", "Decoder", True, "Decode", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["encoding/json", "Decoder", True, "Token", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["encoding/json", "Encoder", True, "Encode", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["encoding/json", "Encoder", True, "SetIndent", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["encoding/json", "Marshaler", True, "MarshalJSON", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["encoding/json", "Unmarshaler", True, "UnmarshalJSON", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
|
||||
@@ -3,7 +3,7 @@ extensions:
|
||||
pack: codeql/go-all
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["encoding", "BinaryMarshaler", True, "MarshalBinary", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["encoding", "BinaryUnmarshaler", True, "UnmarshalBinary", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["encoding", "TextMarshaler", True, "MarshalText", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["encoding", "TextUnmarshaler", True, "UnmarshalText", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["encoding", "BinaryMarshaler", True, "MarshalBinary", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["encoding", "BinaryUnmarshaler", True, "UnmarshalBinary", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["encoding", "TextMarshaler", True, "MarshalText", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["encoding", "TextUnmarshaler", True, "UnmarshalText", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
|
||||
@@ -11,18 +11,18 @@ extensions:
|
||||
- ["encoding/xml", "", False, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["encoding/xml", "", False, "NewTokenDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["encoding/xml", "", False, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"]
|
||||
- ["encoding/xml", "CharData", True, "Copy", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["encoding/xml", "Comment", True, "Copy", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["encoding/xml", "Decoder", True, "Decode", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["encoding/xml", "Decoder", True, "DecodeElement", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["encoding/xml", "Decoder", True, "RawToken", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["encoding/xml", "Directive", True, "Copy", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["encoding/xml", "Encoder", True, "Encode", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["encoding/xml", "Encoder", True, "EncodeElement", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["encoding/xml", "Encoder", True, "EncodeToken", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["encoding/xml", "Encoder", True, "Indent", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["encoding/xml", "Marshaler", True, "MarshalXML", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["encoding/xml", "ProcInst", True, "Copy", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["encoding/xml", "StartElement", True, "Copy", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["encoding/xml", "TokenReader", True, "Token", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["encoding/xml", "Unmarshaler", True, "UnmarshalXML", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["encoding/xml", "CharData", True, "Copy", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["encoding/xml", "Comment", True, "Copy", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["encoding/xml", "Decoder", True, "Decode", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["encoding/xml", "Decoder", True, "DecodeElement", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["encoding/xml", "Decoder", True, "RawToken", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["encoding/xml", "Directive", True, "Copy", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["encoding/xml", "Encoder", True, "Encode", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["encoding/xml", "Encoder", True, "EncodeElement", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["encoding/xml", "Encoder", True, "EncodeToken", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["encoding/xml", "Encoder", True, "Indent", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["encoding/xml", "Marshaler", True, "MarshalXML", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["encoding/xml", "ProcInst", True, "Copy", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["encoding/xml", "StartElement", True, "Copy", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["encoding/xml", "TokenReader", True, "Token", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["encoding/xml", "Unmarshaler", True, "UnmarshalXML", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
|
||||
@@ -3,9 +3,9 @@ extensions:
|
||||
pack: codeql/go-all
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["expvar", "Func", True, "Value", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["expvar", "Map", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["expvar", "Map", True, "Set", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["expvar", "String", True, "Set", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["expvar", "String", True, "Value", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["expvar", "Var", True, "String", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["expvar", "Func", True, "Value", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["expvar", "Map", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["expvar", "Map", True, "Set", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["expvar", "String", True, "Set", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["expvar", "String", True, "Value", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["expvar", "Var", True, "String", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
|
||||
@@ -3,11 +3,11 @@ extensions:
|
||||
pack: codeql/go-all
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["fmt", "GoStringer", True, "GoString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["fmt", "ScanState", True, "Read", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["fmt", "ScanState", True, "Token", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["fmt", "State", True, "Write", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["fmt", "Stringer", True, "String", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["fmt", "GoStringer", True, "GoString", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["fmt", "ScanState", True, "Read", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["fmt", "ScanState", True, "Token", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["fmt", "State", True, "Write", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["fmt", "Stringer", True, "String", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["fmt", "", True, "Append", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["fmt", "", True, "Append", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"]
|
||||
- ["fmt", "", True, "Appendf", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
|
||||
@@ -13,9 +13,9 @@ extensions:
|
||||
- ["github.com/astaxie/beego/utils", "", False, "SliceReduce", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/astaxie/beego/utils", "", False, "SliceShuffle", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/astaxie/beego/utils", "", False, "SliceUnique", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/astaxie/beego/utils", "BeeMap", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/astaxie/beego/utils", "BeeMap", True, "Items", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/astaxie/beego/utils", "BeeMap", True, "Set", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["github.com/astaxie/beego/utils", "BeeMap", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/astaxie/beego/utils", "BeeMap", True, "Items", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/astaxie/beego/utils", "BeeMap", True, "Set", "", "", "Argument[1]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["github.com/beego/beego/core/utils", "", False, "SliceChunk", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/beego/beego/core/utils", "", False, "SliceDiff", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/beego/beego/core/utils", "", False, "SliceFilter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
@@ -26,6 +26,6 @@ extensions:
|
||||
- ["github.com/beego/beego/core/utils", "", False, "SliceReduce", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/beego/beego/core/utils", "", False, "SliceShuffle", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/beego/beego/core/utils", "", False, "SliceUnique", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/beego/beego/core/utils", "BeeMap", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/beego/beego/core/utils", "BeeMap", True, "Items", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/beego/beego/core/utils", "BeeMap", True, "Set", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["github.com/beego/beego/core/utils", "BeeMap", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/beego/beego/core/utils", "BeeMap", True, "Items", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/beego/beego/core/utils", "BeeMap", True, "Set", "", "", "Argument[1]", "Argument[receiver]", "taint", "manual"]
|
||||
|
||||
@@ -3,5 +3,5 @@ extensions:
|
||||
pack: codeql/go-all
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["github.com/elazarl/goproxy", "CertStorage", True, "Fetch", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["github.com/elazarl/goproxy", "CertStorage", True, "Fetch", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["github.com/elazarl/goproxy", "CertStorage", True, "Fetch", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"]
|
||||
|
||||
@@ -7,11 +7,11 @@ extensions:
|
||||
- ["github.com/evanphx/json-patch", "", False, "DecodePatch", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["github.com/evanphx/json-patch", "", False, "MergeMergePatches", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["github.com/evanphx/json-patch", "", False, "MergePatch", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["github.com/evanphx/json-patch", "Patch", True, "Apply", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["github.com/evanphx/json-patch", "Patch", True, "Apply", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["github.com/evanphx/json-patch", "Patch", True, "Apply", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["github.com/evanphx/json-patch", "Patch", True, "ApplyIndent", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["github.com/evanphx/json-patch", "Patch", True, "ApplyIndent", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["github.com/evanphx/json-patch", "Patch", True, "ApplyIndent", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["github.com/evanphx/json-patch", "Patch", True, "ApplyIndentWithOptions", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["github.com/evanphx/json-patch", "Patch", True, "ApplyIndentWithOptions", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["github.com/evanphx/json-patch", "Patch", True, "ApplyIndentWithOptions", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["github.com/evanphx/json-patch", "Patch", True, "ApplyWithOptions", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["github.com/evanphx/json-patch", "Patch", True, "ApplyWithOptions", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["github.com/evanphx/json-patch", "Patch", True, "ApplyWithOptions", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
|
||||
@@ -3,5 +3,5 @@ extensions:
|
||||
pack: codeql/go-all
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["github.com/gin-gonic/gin", "Params", True, "ByName", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/gin-gonic/gin", "Params", True, "Get", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["github.com/gin-gonic/gin", "Params", True, "ByName", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/gin-gonic/gin", "Params", True, "Get", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
|
||||
@@ -3,7 +3,7 @@ extensions:
|
||||
pack: codeql/go-all
|
||||
extensible: sinkModel
|
||||
data:
|
||||
- ["github.com/go-jose/go-jose/$ANYVERSION/jwt", "JSONWebToken", True, "UnsafeClaimsWithoutVerification", "", "", "Argument[-1]", "jwt", "manual"]
|
||||
- ["github.com/go-jose/go-jose/$ANYVERSION/jwt", "JSONWebToken", True, "UnsafeClaimsWithoutVerification", "", "", "Argument[receiver]", "jwt", "manual"]
|
||||
- addsTo:
|
||||
pack: codeql/go-all
|
||||
extensible: summaryModel
|
||||
@@ -11,4 +11,4 @@ extensions:
|
||||
- ["github.com/go-jose/go-jose/$ANYVERSION/jwt", "", True, "ParseEncrypted", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["github.com/go-jose/go-jose/$ANYVERSION/jwt", "", True, "ParseSigned", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["github.com/go-jose/go-jose/$ANYVERSION/jwt", "NestedJSONWebToken", True, "ParseSignedAndEncrypted", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["github.com/go-jose/go-jose/$ANYVERSION/jwt", "NestedJSONWebToken", True, "Decrypt", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["github.com/go-jose/go-jose/$ANYVERSION/jwt", "NestedJSONWebToken", True, "Decrypt", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
|
||||
@@ -3,5 +3,5 @@ extensions:
|
||||
pack: codeql/go-all
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["github.com/labstack/echo", "Context", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/labstack/echo", "Context", True, "Set", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["github.com/labstack/echo", "Context", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/labstack/echo", "Context", True, "Set", "", "", "Argument[1]", "Argument[receiver]", "taint", "manual"]
|
||||
|
||||
@@ -3,23 +3,23 @@ extensions:
|
||||
pack: codeql/go-all
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["github.com/revel/revel", "Params", True, "Bind", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["github.com/revel/revel", "Params", True, "BindJSON", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["github.com/revel/revel", "RevelHeader", True, "Add", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["github.com/revel/revel", "RevelHeader", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/revel/revel", "RevelHeader", True, "GetAll", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/revel/revel", "RevelHeader", True, "Set", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["github.com/revel/revel", "RevelHeader", True, "SetCookie", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["github.com/revel/revel", "ServerCookie", True, "GetValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/revel/revel", "ServerMultipartForm", True, "GetFiles", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/revel/revel", "ServerMultipartForm", True, "GetValues", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/robfig/revel", "Params", True, "Bind", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["github.com/robfig/revel", "Params", True, "BindJSON", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["github.com/robfig/revel", "RevelHeader", True, "Add", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["github.com/robfig/revel", "RevelHeader", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/robfig/revel", "RevelHeader", True, "GetAll", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/robfig/revel", "RevelHeader", True, "Set", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["github.com/robfig/revel", "RevelHeader", True, "SetCookie", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["github.com/robfig/revel", "ServerCookie", True, "GetValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/robfig/revel", "ServerMultipartForm", True, "GetFiles", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/robfig/revel", "ServerMultipartForm", True, "GetValues", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/revel/revel", "Params", True, "Bind", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["github.com/revel/revel", "Params", True, "BindJSON", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["github.com/revel/revel", "RevelHeader", True, "Add", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["github.com/revel/revel", "RevelHeader", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/revel/revel", "RevelHeader", True, "GetAll", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/revel/revel", "RevelHeader", True, "Set", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["github.com/revel/revel", "RevelHeader", True, "SetCookie", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["github.com/revel/revel", "ServerCookie", True, "GetValue", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/revel/revel", "ServerMultipartForm", True, "GetFiles", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/revel/revel", "ServerMultipartForm", True, "GetValues", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/robfig/revel", "Params", True, "Bind", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["github.com/robfig/revel", "Params", True, "BindJSON", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["github.com/robfig/revel", "RevelHeader", True, "Add", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["github.com/robfig/revel", "RevelHeader", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/robfig/revel", "RevelHeader", True, "GetAll", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/robfig/revel", "RevelHeader", True, "Set", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["github.com/robfig/revel", "RevelHeader", True, "SetCookie", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["github.com/robfig/revel", "ServerCookie", True, "GetValue", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/robfig/revel", "ServerMultipartForm", True, "GetFiles", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/robfig/revel", "ServerMultipartForm", True, "GetValues", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
|
||||
@@ -3,8 +3,8 @@ extensions:
|
||||
pack: codeql/go-all
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["github.com/valyala/fasthttp", "URI", False, "SetHost", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["github.com/valyala/fasthttp", "URI", False, "SetHostBytes", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["github.com/valyala/fasthttp", "URI", False, "Update", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["github.com/valyala/fasthttp", "URI", False, "UpdateBytes", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["github.com/valyala/fasthttp", "URI", False, "Parse", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["github.com/valyala/fasthttp", "URI", False, "SetHost", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["github.com/valyala/fasthttp", "URI", False, "SetHostBytes", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["github.com/valyala/fasthttp", "URI", False, "Update", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["github.com/valyala/fasthttp", "URI", False, "UpdateBytes", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["github.com/valyala/fasthttp", "URI", False, "Parse", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
|
||||
|
||||
@@ -7,4 +7,4 @@ extensions:
|
||||
- ["golang.org/x/net/context", "", False, "WithDeadline", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["golang.org/x/net/context", "", False, "WithTimeout", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["golang.org/x/net/context", "", False, "WithValue", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"]
|
||||
- ["golang.org/x/net/context", "Context", True, "Value", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["golang.org/x/net/context", "Context", True, "Value", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
|
||||
@@ -12,10 +12,10 @@ extensions:
|
||||
- ["golang.org/x/net/$ANYVERSION/html", "", False, "ParseWithOptions", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["golang.org/x/net/$ANYVERSION/html", "", False, "Render", "", "", "Argument[1]", "Argument[0]", "taint", "manual"]
|
||||
- ["golang.org/x/net/$ANYVERSION/html", "", False, "UnescapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["golang.org/x/net/$ANYVERSION/html", "Node", True, "AppendChild", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["golang.org/x/net/$ANYVERSION/html", "Node", True, "InsertBefore", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["golang.org/x/net/$ANYVERSION/html", "Tokenizer", True, "Buffered", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["golang.org/x/net/$ANYVERSION/html", "Tokenizer", True, "Raw", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["golang.org/x/net/$ANYVERSION/html", "Tokenizer", True, "TagAttr", "", "", "Argument[-1]", "ReturnValue[1]", "taint", "manual"]
|
||||
- ["golang.org/x/net/$ANYVERSION/html", "Tokenizer", True, "Text", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["golang.org/x/net/$ANYVERSION/html", "Tokenizer", True, "Token", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["golang.org/x/net/$ANYVERSION/html", "Node", True, "AppendChild", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["golang.org/x/net/$ANYVERSION/html", "Node", True, "InsertBefore", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["golang.org/x/net/$ANYVERSION/html", "Tokenizer", True, "Buffered", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["golang.org/x/net/$ANYVERSION/html", "Tokenizer", True, "Raw", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["golang.org/x/net/$ANYVERSION/html", "Tokenizer", True, "TagAttr", "", "", "Argument[receiver]", "ReturnValue[1]", "taint", "manual"]
|
||||
- ["golang.org/x/net/$ANYVERSION/html", "Tokenizer", True, "Text", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["golang.org/x/net/$ANYVERSION/html", "Tokenizer", True, "Token", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
|
||||
@@ -3,4 +3,4 @@ extensions:
|
||||
pack: codeql/go-all
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["google.golang.org/protobuf/$ANYVERSION/internal/encoding/text", "Token", True, "String", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["google.golang.org/protobuf/$ANYVERSION/internal/encoding/text", "Token", True, "String", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
|
||||
@@ -3,5 +3,5 @@ extensions:
|
||||
pack: codeql/go-all
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["google.golang.org/protobuf/$ANYVERSION/internal/impl", "aberrantMessage", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["google.golang.org/protobuf/$ANYVERSION/internal/impl", "aberrantMessage", True, "GetUnknown", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["google.golang.org/protobuf/$ANYVERSION/internal/impl", "aberrantMessage", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["google.golang.org/protobuf/$ANYVERSION/internal/impl", "aberrantMessage", True, "GetUnknown", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
|
||||
@@ -3,4 +3,4 @@ extensions:
|
||||
pack: codeql/go-all
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["google.golang.org/protobuf/$ANYVERSION/reflect/protoreflect", "ProtoMessage", True, "ProtoReflect", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["google.golang.org/protobuf/$ANYVERSION/reflect/protoreflect", "ProtoMessage", True, "ProtoReflect", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
|
||||
@@ -5,55 +5,55 @@ extensions:
|
||||
data:
|
||||
- ["gopkg.in/couchbase/gocb", "", False, "NewAnalyticsQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "", False, "NewN1qlQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "ContextId", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "Deferred", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "Pretty", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "Priority", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "RawParam", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "ServerSideTimeout", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "AdHoc", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "Consistency", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "ConsistentWith", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "Custom", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "PipelineBatch", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "PipelineCap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "Profile", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "ReadOnly", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "ScanCap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "Timeout", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "ContextId", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "Deferred", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "Pretty", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "Priority", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "RawParam", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "ServerSideTimeout", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "AdHoc", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "Consistency", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "ConsistentWith", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "Custom", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "PipelineBatch", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "PipelineCap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "Profile", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "ReadOnly", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "ScanCap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "Timeout", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "", False, "NewAnalyticsQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "", False, "NewN1qlQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "ContextId", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "Deferred", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "Pretty", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "Priority", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "RawParam", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "ServerSideTimeout", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "N1qlQuery", True, "AdHoc", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "N1qlQuery", True, "Consistency", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "N1qlQuery", True, "ConsistentWith", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "N1qlQuery", True, "Custom", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "N1qlQuery", True, "PipelineBatch", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "N1qlQuery", True, "PipelineCap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "N1qlQuery", True, "Profile", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "N1qlQuery", True, "ReadOnly", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "N1qlQuery", True, "ScanCap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "N1qlQuery", True, "Timeout", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "ContextId", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "Deferred", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "Pretty", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "Priority", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "RawParam", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "ServerSideTimeout", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "N1qlQuery", True, "AdHoc", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "N1qlQuery", True, "Consistency", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "N1qlQuery", True, "ConsistentWith", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "N1qlQuery", True, "Custom", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "N1qlQuery", True, "PipelineBatch", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "N1qlQuery", True, "PipelineCap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "N1qlQuery", True, "Profile", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "N1qlQuery", True, "ReadOnly", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "N1qlQuery", True, "ScanCap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbase/gocb", "N1qlQuery", True, "Timeout", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "", False, "NewAnalyticsQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "", False, "NewN1qlQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "ContextId", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "Deferred", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "Pretty", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "Priority", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "RawParam", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "ServerSideTimeout", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "AdHoc", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "Consistency", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "ConsistentWith", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "Custom", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "PipelineBatch", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "PipelineCap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "Profile", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "ReadOnly", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "ScanCap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "Timeout", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "ContextId", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "Deferred", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "Pretty", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "Priority", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "RawParam", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "ServerSideTimeout", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "AdHoc", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "Consistency", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "ConsistentWith", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "Custom", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "PipelineBatch", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "PipelineCap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "Profile", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "ReadOnly", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "ScanCap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "Timeout", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
|
||||
@@ -19,4 +19,4 @@ extensions:
|
||||
pack: codeql/go-all
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["gopkg.in/macaron", "RequestBody", True, "String", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["gopkg.in/macaron", "RequestBody", True, "String", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
|
||||
@@ -3,7 +3,7 @@ extensions:
|
||||
pack: codeql/go-all
|
||||
extensible: sinkModel
|
||||
data:
|
||||
- ["gopkg.in/square/go-jose.v2/jwt", "JSONWebToken", True, "UnsafeClaimsWithoutVerification", "", "", "Argument[-1]", "jwt", "manual"]
|
||||
- ["gopkg.in/square/go-jose.v2/jwt", "JSONWebToken", True, "UnsafeClaimsWithoutVerification", "", "", "Argument[receiver]", "jwt", "manual"]
|
||||
- addsTo:
|
||||
pack: codeql/go-all
|
||||
extensible: summaryModel
|
||||
@@ -11,4 +11,4 @@ extensions:
|
||||
- ["gopkg.in/square/go-jose.v2/jwt", "", True, "ParseEncrypted", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["gopkg.in/square/go-jose.v2/jwt", "", True, "ParseSigned", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["gopkg.in/square/go-jose.v2/jwt", "NestedJSONWebToken", True, "ParseSignedAndEncrypted", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["gopkg.in/square/go-jose.v2/jwt", "NestedJSONWebToken", True, "Decrypt", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["gopkg.in/square/go-jose.v2/jwt", "NestedJSONWebToken", True, "Decrypt", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
|
||||
@@ -7,8 +7,8 @@ extensions:
|
||||
- ["gopkg.in/yaml", "", False, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"]
|
||||
- ["gopkg.in/yaml", "", False, "UnmarshalStrict", "", "", "Argument[0]", "Argument[1]", "taint", "manual"]
|
||||
- ["gopkg.in/yaml", "", False, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["gopkg.in/yaml", "Decoder", True, "Decode", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["gopkg.in/yaml", "Encoder", True, "Encode", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["gopkg.in/yaml", "Node", True, "Decode", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["gopkg.in/yaml", "Node", True, "Encode", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["gopkg.in/yaml", "Node", True, "SetString", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["gopkg.in/yaml", "Decoder", True, "Decode", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["gopkg.in/yaml", "Encoder", True, "Encode", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["gopkg.in/yaml", "Node", True, "Decode", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["gopkg.in/yaml", "Node", True, "Encode", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["gopkg.in/yaml", "Node", True, "SetString", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
|
||||
@@ -8,10 +8,10 @@ extensions:
|
||||
- ["io/fs", "", False, "ReadDir", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["io/fs", "", False, "ReadFile", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["io/fs", "", False, "Sub", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["io/fs", "DirEntry", True, "Info", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["io/fs", "DirEntry", True, "Name", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["io/fs", "FS", True, "Open", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["io/fs", "GlobFS", True, "Glob", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["io/fs", "ReadDirFS", True, "ReadDir", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["io/fs", "ReadFileFS", True, "ReadFile", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["io/fs", "SubFS", True, "Sub", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["io/fs", "DirEntry", True, "Info", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["io/fs", "DirEntry", True, "Name", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["io/fs", "FS", True, "Open", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["io/fs", "GlobFS", True, "Glob", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["io/fs", "ReadDirFS", True, "ReadDir", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["io/fs", "ReadFileFS", True, "ReadFile", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["io/fs", "SubFS", True, "Sub", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
|
||||
@@ -15,10 +15,10 @@ extensions:
|
||||
- ["io", "", False, "TeeReader", "", "", "Argument[0]", "Argument[1]", "taint", "manual"]
|
||||
- ["io", "", False, "TeeReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["io", "", False, "WriteString", "", "", "Argument[1]", "Argument[0]", "taint", "manual"]
|
||||
- ["io", "Reader", True, "Read", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["io", "ReaderAt", True, "ReadAt", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["io", "ReaderFrom", True, "ReadFrom", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["io", "StringWriter", True, "WriteString", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["io", "Writer", True, "Write", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["io", "WriterAt", True, "WriteAt", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["io", "WriterTo", True, "WriteTo", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["io", "Reader", True, "Read", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["io", "ReaderAt", True, "ReadAt", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["io", "ReaderFrom", True, "ReadFrom", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["io", "StringWriter", True, "WriteString", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["io", "Writer", True, "Write", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["io", "WriterAt", True, "WriteAt", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["io", "WriterTo", True, "WriteTo", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
|
||||
@@ -3,13 +3,13 @@ extensions:
|
||||
pack: codeql/go-all
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["k8s.io/api/core", "Secret", True, "DeepCopy", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["k8s.io/api/core", "Secret", True, "DeepCopyInto", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["k8s.io/api/core", "Secret", True, "DeepCopyObject", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["k8s.io/api/core", "Secret", True, "Marshal", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["k8s.io/api/core", "Secret", True, "Unmarshal", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["k8s.io/api/core", "SecretList", True, "DeepCopy", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["k8s.io/api/core", "SecretList", True, "DeepCopyInto", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["k8s.io/api/core", "SecretList", True, "DeepCopyObject", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["k8s.io/api/core", "SecretList", True, "Marshal", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["k8s.io/api/core", "SecretList", True, "Unmarshal", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["k8s.io/api/core", "Secret", True, "DeepCopy", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["k8s.io/api/core", "Secret", True, "DeepCopyInto", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["k8s.io/api/core", "Secret", True, "DeepCopyObject", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["k8s.io/api/core", "Secret", True, "Marshal", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["k8s.io/api/core", "Secret", True, "Unmarshal", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["k8s.io/api/core", "SecretList", True, "DeepCopy", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["k8s.io/api/core", "SecretList", True, "DeepCopyInto", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["k8s.io/api/core", "SecretList", True, "DeepCopyObject", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["k8s.io/api/core", "SecretList", True, "Marshal", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["k8s.io/api/core", "SecretList", True, "Unmarshal", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
|
||||
@@ -23,30 +23,30 @@ extensions:
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "", False, "NewEncodableList", "", "", "Argument[1]", "ReturnValue", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "", False, "SetField", "", "", "Argument[0]", "Argument[1]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "", False, "UseOrCreateObject", "", "", "Argument[3]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "CacheableObject", True, "CacheEncode", "", "", "Argument[-1]", "Argument[2]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "CacheableObject", True, "GetObject", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "CacheableObject", True, "CacheEncode", "", "", "Argument[receiver]", "Argument[2]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "CacheableObject", True, "GetObject", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Decoder", True, "Decode", "", "", "Argument[0]", "Argument[2]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Decoder", True, "Decode", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Encoder", True, "Encode", "", "", "Argument[0]", "Argument[1]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Framer", True, "NewFrameReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Framer", True, "NewFrameWriter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Object", True, "DeepCopyObject", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Object", True, "DeepCopyObject", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "ObjectConvertor", True, "Convert", "", "", "Argument[0]", "Argument[1]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "ObjectVersioner", True, "ConvertToVersion", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "ParameterCodec", True, "DecodeParameters", "", "", "Argument[0]", "Argument[2]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "ParameterCodec", True, "EncodeParameters", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "ProtobufMarshaller", True, "MarshalTo", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "ProtobufReverseMarshaller", True, "MarshalToSizedBuffer", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "RawExtension", True, "DeepCopy", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "RawExtension", True, "DeepCopyInto", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "RawExtension", True, "Marshal", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "RawExtension", True, "Unmarshal", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unknown", True, "DeepCopy", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unknown", True, "DeepCopyInto", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unknown", True, "Marshal", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unknown", True, "NestedMarshalTo", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unknown", True, "Unmarshal", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unstructured", True, "SetUnstructuredContent", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unstructured", True, "UnstructuredContent", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "ProtobufMarshaller", True, "MarshalTo", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "ProtobufReverseMarshaller", True, "MarshalToSizedBuffer", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "RawExtension", True, "DeepCopy", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "RawExtension", True, "DeepCopyInto", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "RawExtension", True, "Marshal", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "RawExtension", True, "Unmarshal", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unknown", True, "DeepCopy", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unknown", True, "DeepCopyInto", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unknown", True, "Marshal", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unknown", True, "NestedMarshalTo", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unknown", True, "Unmarshal", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unstructured", True, "SetUnstructuredContent", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unstructured", True, "UnstructuredContent", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "WithoutVersionDecoder", True, "Decode", "", "", "Argument[0]", "Argument[2]", "taint", "manual"]
|
||||
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "WithoutVersionDecoder", True, "Decode", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
|
||||
@@ -3,6 +3,6 @@ extensions:
|
||||
pack: codeql/go-all
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["log", "Logger", True, "SetOutput", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["log", "Logger", True, "SetPrefix", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["log", "Logger", True, "Writer", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["log", "Logger", True, "SetOutput", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["log", "Logger", True, "SetPrefix", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["log", "Logger", True, "Writer", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
|
||||
@@ -3,4 +3,4 @@ extensions:
|
||||
pack: codeql/go-all
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["math/big", "Int", False, "Int64", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["math/big", "Int", False, "Int64", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
|
||||
@@ -4,10 +4,10 @@ extensions:
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["mime/multipart", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["mime/multipart", "FileHeader", True, "Open", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["mime/multipart", "Part", True, "FileName", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["mime/multipart", "Part", True, "FormName", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["mime/multipart", "Reader", True, "NextPart", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["mime/multipart", "Reader", True, "NextRawPart", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["mime/multipart", "Reader", True, "ReadForm", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["mime/multipart", "Writer", True, "WriteField", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["mime/multipart", "FileHeader", True, "Open", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["mime/multipart", "Part", True, "FileName", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["mime/multipart", "Part", True, "FormName", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["mime/multipart", "Reader", True, "NextPart", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["mime/multipart", "Reader", True, "NextRawPart", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["mime/multipart", "Reader", True, "ReadForm", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["mime/multipart", "Writer", True, "WriteField", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
|
||||
|
||||
@@ -9,7 +9,7 @@ extensions:
|
||||
- ["net/http/httputil", "", False, "NewChunkedReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/http/httputil", "", False, "NewClientConn", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/http/httputil", "", False, "NewProxyClientConn", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/http/httputil", "BufferPool", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/http/httputil", "BufferPool", True, "Put", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["net/http/httputil", "ClientConn", True, "Hijack", "", "", "Argument[-1]", "ReturnValue[0..1]", "taint", "manual"]
|
||||
- ["net/http/httputil", "ServerConn", True, "Hijack", "", "", "Argument[-1]", "ReturnValue[0..1]", "taint", "manual"]
|
||||
- ["net/http/httputil", "BufferPool", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/http/httputil", "BufferPool", True, "Put", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["net/http/httputil", "ClientConn", True, "Hijack", "", "", "Argument[receiver]", "ReturnValue[0..1]", "taint", "manual"]
|
||||
- ["net/http/httputil", "ServerConn", True, "Hijack", "", "", "Argument[receiver]", "ReturnValue[0..1]", "taint", "manual"]
|
||||
|
||||
@@ -11,20 +11,20 @@ extensions:
|
||||
- ["net/http", "", False, "ReadRequest", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/http", "", False, "ReadResponse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/http", "", False, "SetCookie", "", "", "Argument[1]", "Argument[0]", "taint", "manual"]
|
||||
- ["net/http", "Header", True, "Add", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["net/http", "Header", True, "Clone", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/http", "Header", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/http", "Header", True, "Set", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["net/http", "Header", True, "Values", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/http", "Header", True, "Write", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["net/http", "Header", True, "WriteSubset", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["net/http", "Hijacker", True, "Hijack", "", "", "Argument[-1]", "ReturnValue[0..1]", "taint", "manual"]
|
||||
- ["net/http", "Request", True, "AddCookie", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["net/http", "Request", True, "Clone", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/http", "Request", True, "Write", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["net/http", "Request", True, "WriteProxy", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["net/http", "Response", True, "Write", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["net/http", "Transport", True, "Clone", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/http", "Header", True, "Add", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["net/http", "Header", True, "Clone", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/http", "Header", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/http", "Header", True, "Set", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["net/http", "Header", True, "Values", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/http", "Header", True, "Write", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["net/http", "Header", True, "WriteSubset", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["net/http", "Hijacker", True, "Hijack", "", "", "Argument[receiver]", "ReturnValue[0..1]", "taint", "manual"]
|
||||
- ["net/http", "Request", True, "AddCookie", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["net/http", "Request", True, "Clone", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/http", "Request", True, "Write", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["net/http", "Request", True, "WriteProxy", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["net/http", "Response", True, "Write", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["net/http", "Transport", True, "Clone", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- addsTo:
|
||||
pack: codeql/go-all
|
||||
extensible: sourceModel
|
||||
|
||||
@@ -8,4 +8,4 @@ extensions:
|
||||
- ["net/mail", "", False, "ReadMessage", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/mail", "AddressParser", True, "Parse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/mail", "AddressParser", True, "ParseList", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/mail", "Header", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/mail", "Header", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
|
||||
@@ -7,19 +7,19 @@ extensions:
|
||||
- ["net", "", False, "FilePacketConn", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net", "", False, "JoinHostPort", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net", "", False, "SplitHostPort", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"]
|
||||
- ["net", "IPConn", True, "ReadFromIP", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["net", "IPConn", True, "ReadMsgIP", "", "", "Argument[-1]", "Argument[0..1]", "taint", "manual"]
|
||||
- ["net", "IPConn", True, "WriteMsgIP", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["net", "IPConn", True, "WriteToIP", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["net", "PacketConn", True, "ReadFrom", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["net", "PacketConn", True, "WriteTo", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["net", "TCPListener", True, "File", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net", "UDPConn", True, "ReadFromUDP", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["net", "UDPConn", True, "ReadMsgUDP", "", "", "Argument[-1]", "Argument[0..1]", "taint", "manual"]
|
||||
- ["net", "UDPConn", True, "WriteMsgUDP", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["net", "UDPConn", True, "WriteToUDP", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["net", "UnixConn", True, "ReadFromUnix", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["net", "UnixConn", True, "ReadMsgUnix", "", "", "Argument[-1]", "Argument[0..1]", "taint", "manual"]
|
||||
- ["net", "UnixConn", True, "WriteMsgUnix", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["net", "UnixConn", True, "WriteToUnix", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["net", "UnixListener", True, "File", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net", "IPConn", True, "ReadFromIP", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["net", "IPConn", True, "ReadMsgIP", "", "", "Argument[receiver]", "Argument[0..1]", "taint", "manual"]
|
||||
- ["net", "IPConn", True, "WriteMsgIP", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["net", "IPConn", True, "WriteToIP", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["net", "PacketConn", True, "ReadFrom", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["net", "PacketConn", True, "WriteTo", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["net", "TCPListener", True, "File", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net", "UDPConn", True, "ReadFromUDP", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["net", "UDPConn", True, "ReadMsgUDP", "", "", "Argument[receiver]", "Argument[0..1]", "taint", "manual"]
|
||||
- ["net", "UDPConn", True, "WriteMsgUDP", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["net", "UDPConn", True, "WriteToUDP", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["net", "UnixConn", True, "ReadFromUnix", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["net", "UnixConn", True, "ReadMsgUnix", "", "", "Argument[receiver]", "Argument[0..1]", "taint", "manual"]
|
||||
- ["net", "UnixConn", True, "WriteMsgUnix", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["net", "UnixConn", True, "WriteToUnix", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["net", "UnixListener", True, "File", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
|
||||
@@ -8,17 +8,17 @@ extensions:
|
||||
- ["net/textproto", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/textproto", "", False, "TrimBytes", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/textproto", "", False, "TrimString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/textproto", "MIMEHeader", True, "Add", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["net/textproto", "MIMEHeader", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/textproto", "MIMEHeader", True, "Set", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["net/textproto", "MIMEHeader", True, "Values", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/textproto", "Reader", True, "DotReader", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/textproto", "Reader", True, "ReadCodeLine", "", "", "Argument[-1]", "ReturnValue[1]", "taint", "manual"]
|
||||
- ["net/textproto", "Reader", True, "ReadContinuedLine", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/textproto", "Reader", True, "ReadContinuedLineBytes", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/textproto", "Reader", True, "ReadDotBytes", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/textproto", "Reader", True, "ReadDotLines", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/textproto", "Reader", True, "ReadLine", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/textproto", "Reader", True, "ReadLineBytes", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/textproto", "Reader", True, "ReadMIMEHeader", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/textproto", "Reader", True, "ReadResponse", "", "", "Argument[-1]", "ReturnValue[1]", "taint", "manual"]
|
||||
- ["net/textproto", "MIMEHeader", True, "Add", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["net/textproto", "MIMEHeader", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/textproto", "MIMEHeader", True, "Set", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["net/textproto", "MIMEHeader", True, "Values", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/textproto", "Reader", True, "DotReader", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/textproto", "Reader", True, "ReadCodeLine", "", "", "Argument[receiver]", "ReturnValue[1]", "taint", "manual"]
|
||||
- ["net/textproto", "Reader", True, "ReadContinuedLine", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/textproto", "Reader", True, "ReadContinuedLineBytes", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/textproto", "Reader", True, "ReadDotBytes", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/textproto", "Reader", True, "ReadDotLines", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/textproto", "Reader", True, "ReadLine", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/textproto", "Reader", True, "ReadLineBytes", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/textproto", "Reader", True, "ReadMIMEHeader", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/textproto", "Reader", True, "ReadResponse", "", "", "Argument[receiver]", "ReturnValue[1]", "taint", "manual"]
|
||||
|
||||
@@ -12,17 +12,17 @@ extensions:
|
||||
- ["net/url", "", False, "QueryUnescape", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/url", "", False, "User", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/url", "", False, "UserPassword", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/url", "URL", True, "EscapedPath", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/url", "URL", True, "Hostname", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/url", "URL", True, "MarshalBinary", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/url", "URL", True, "Parse", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/url", "URL", True, "EscapedPath", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/url", "URL", True, "Hostname", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/url", "URL", True, "MarshalBinary", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/url", "URL", True, "Parse", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/url", "URL", True, "Parse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/url", "URL", True, "Port", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/url", "URL", True, "Query", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/url", "URL", True, "RequestURI", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/url", "URL", True, "ResolveReference", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/url", "URL", True, "Port", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/url", "URL", True, "Query", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/url", "URL", True, "RequestURI", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/url", "URL", True, "ResolveReference", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/url", "URL", True, "ResolveReference", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/url", "Userinfo", True, "Password", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/url", "Userinfo", True, "Username", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/url", "Values", True, "Encode", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/url", "Values", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/url", "Userinfo", True, "Password", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["net/url", "Userinfo", True, "Username", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/url", "Values", True, "Encode", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["net/url", "Values", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
|
||||
@@ -6,4 +6,4 @@ extensions:
|
||||
- ["os", "", False, "Expand", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["os", "", False, "ExpandEnv", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["os", "", False, "NewFile", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["os", "File", True, "Fd", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["os", "File", True, "Fd", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
|
||||
@@ -7,36 +7,36 @@ extensions:
|
||||
- ["reflect", "", False, "Copy", "", "", "Argument[1]", "Argument[0]", "taint", "manual"]
|
||||
- ["reflect", "", False, "Indirect", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "", False, "ValueOf", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "MapIter", True, "Key", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "MapIter", True, "Value", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "StructTag", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "StructTag", True, "Lookup", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Addr", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Bytes", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Convert", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Elem", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Field", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "FieldByIndex", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "FieldByName", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "FieldByNameFunc", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Index", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Interface", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "InterfaceData", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "MapIndex", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "MapKeys", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "MapRange", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Method", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "MethodByName", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Pointer", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Recv", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Send", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Set", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "SetBytes", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "SetMapIndex", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "SetPointer", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "SetString", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Slice", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Slice3", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "TryRecv", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "TrySend", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "UnsafeAddr", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "MapIter", True, "Key", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "MapIter", True, "Value", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "StructTag", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "StructTag", True, "Lookup", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Addr", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Bytes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Convert", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Elem", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Field", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "FieldByIndex", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "FieldByName", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "FieldByNameFunc", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Index", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Interface", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "InterfaceData", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "MapIndex", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "MapKeys", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "MapRange", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Method", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "MethodByName", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Pointer", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Recv", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Send", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Set", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "SetBytes", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "SetMapIndex", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "SetPointer", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "SetString", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Slice", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "Slice3", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "TryRecv", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "TrySend", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["reflect", "Value", True, "UnsafeAddr", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
|
||||
@@ -34,6 +34,6 @@ extensions:
|
||||
- ["strings", "", False, "TrimRightFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["strings", "", False, "TrimSpace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["strings", "", False, "TrimSuffix", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["strings", "Reader", True, "Reset", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["strings", "Reader", True, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["strings", "Replacer", True, "Replace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["strings", "Replacer", True, "WriteString", "", "", "Argument[1]", "Argument[0]", "taint", "manual"]
|
||||
|
||||
@@ -15,15 +15,15 @@ extensions:
|
||||
- ["sync/atomic", "", False, "SwapPointer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["sync/atomic", "", False, "SwapUintptr", "", "", "Argument[1]", "Argument[0]", "taint", "manual"]
|
||||
- ["sync/atomic", "", False, "SwapUintptr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["sync/atomic", "Pointer", True, "Load", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["sync/atomic", "Pointer", True, "Store", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["sync/atomic", "Pointer", True, "Swap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["sync/atomic", "Pointer", True, "Swap", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["sync/atomic", "Uintptr", True, "Load", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["sync/atomic", "Uintptr", True, "Store", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["sync/atomic", "Uintptr", True, "Swap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["sync/atomic", "Uintptr", True, "Swap", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["sync/atomic", "Value", True, "Load", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["sync/atomic", "Value", True, "Store", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["sync/atomic", "Value", True, "Swap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["sync/atomic", "Value", True, "Swap", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["sync/atomic", "Pointer", True, "Load", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["sync/atomic", "Pointer", True, "Store", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["sync/atomic", "Pointer", True, "Swap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["sync/atomic", "Pointer", True, "Swap", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["sync/atomic", "Uintptr", True, "Load", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["sync/atomic", "Uintptr", True, "Store", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["sync/atomic", "Uintptr", True, "Swap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["sync/atomic", "Uintptr", True, "Swap", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["sync/atomic", "Value", True, "Load", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["sync/atomic", "Value", True, "Store", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["sync/atomic", "Value", True, "Swap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["sync/atomic", "Value", True, "Swap", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
|
||||
@@ -3,13 +3,13 @@ extensions:
|
||||
pack: codeql/go-all
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["sync", "Map", True, "CompareAndSwap", "", "", "Argument[2]", "Argument[-1]", "taint", "manual"]
|
||||
- ["sync", "Map", True, "Load", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["sync", "Map", True, "LoadOrStore", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["sync", "Map", True, "LoadOrStore", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["sync", "Map", True, "CompareAndSwap", "", "", "Argument[2]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["sync", "Map", True, "Load", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["sync", "Map", True, "LoadOrStore", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["sync", "Map", True, "LoadOrStore", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["sync", "Map", True, "LoadOrStore", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["sync", "Map", True, "Store", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["sync", "Map", True, "Swap", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["sync", "Map", True, "Swap", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
|
||||
- ["sync", "Pool", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["sync", "Pool", True, "Put", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["sync", "Map", True, "Store", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["sync", "Map", True, "Swap", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["sync", "Map", True, "Swap", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["sync", "Pool", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["sync", "Pool", True, "Put", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
|
||||
@@ -8,6 +8,6 @@ extensions:
|
||||
- ["syscall", "", False, "StringBytePtr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["syscall", "", False, "StringByteSlice", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["syscall", "", False, "StringSlicePtr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["syscall", "Conn", True, "SyscallConn", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["syscall", "RawConn", True, "Read", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["syscall", "RawConn", True, "Write", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["syscall", "Conn", True, "SyscallConn", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
|
||||
- ["syscall", "RawConn", True, "Read", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["syscall", "RawConn", True, "Write", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
|
||||
@@ -3,6 +3,6 @@ extensions:
|
||||
pack: codeql/go-all
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["text/scanner", "Scanner", True, "Init", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["text/scanner", "Scanner", True, "Init", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["text/scanner", "Scanner", True, "Init", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["text/scanner", "Scanner", True, "TokenText", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["text/scanner", "Scanner", True, "TokenText", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
|
||||
@@ -3,4 +3,4 @@ extensions:
|
||||
pack: codeql/go-all
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- ["text/tabwriter", "Writer", True, "Init", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["text/tabwriter", "Writer", True, "Init", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* INTERNAL use only. This is an experimental API subject to change without notice.
|
||||
*
|
||||
* Provides classes and predicates for dealing with MaD flow models specified
|
||||
* Provides classes and predicates for dealing with flow models specified
|
||||
* in data extensions and CSV format.
|
||||
*
|
||||
* The CSV specification has the following columns:
|
||||
@@ -11,6 +11,9 @@
|
||||
* `package; type; subtypes; name; signature; ext; input; kind; provenance`
|
||||
* - Summaries:
|
||||
* `package; type; subtypes; name; signature; ext; input; output; kind; provenance`
|
||||
* - Neutrals:
|
||||
* `package; type; name; signature; kind; provenance`
|
||||
* A neutral is used to indicate that a callable is neutral with respect to flow (no summary), source (is not a source) or sink (is not a sink).
|
||||
*
|
||||
* The interpretation of a row is similar to API-graphs with a left-to-right
|
||||
* reading.
|
||||
@@ -27,7 +30,7 @@
|
||||
* "Argument[n]", or "Argument[n1..n2]":
|
||||
* - "": Selects a write to the selected element in case this is a field.
|
||||
* - "Argument[n]": Selects an argument in a call to the selected element.
|
||||
* The arguments are zero-indexed, and `-1` specifies the qualifier.
|
||||
* The arguments are zero-indexed, and `receiver` specifies the receiver.
|
||||
* - "Argument[n1..n2]": Similar to "Argument[n]" but selects any argument
|
||||
* in the given range. The range is inclusive at both ends.
|
||||
*
|
||||
@@ -37,12 +40,12 @@
|
||||
* - "": Selects a read of a selected field.
|
||||
* - "Argument[n]": Selects the post-update value of an argument in a call to the
|
||||
* selected element. That is, the value of the argument after the call returns.
|
||||
* The arguments are zero-indexed, and `-1` specifies the qualifier.
|
||||
* The arguments are zero-indexed, and `receiver` specifies the receiver.
|
||||
* - "Argument[n1..n2]": Similar to "Argument[n]" but select any argument in
|
||||
* the given range. The range is inclusive at both ends.
|
||||
* - "Parameter": Selects the value of a parameter of the selected element.
|
||||
* - "Parameter[n]": Similar to "Parameter" but restricted to a specific
|
||||
* numbered parameter (zero-indexed, and `-1` specifies the value of `this`).
|
||||
* numbered parameter (zero-indexed, and `receiver` specifies the receiver).
|
||||
* - "Parameter[n1..n2]": Similar to "Parameter[n]" but selects any parameter
|
||||
* in the given range. The range is inclusive at both ends.
|
||||
* - "ReturnValue": Selects the first value being returned by the selected
|
||||
@@ -73,46 +76,33 @@
|
||||
|
||||
private import go
|
||||
import internal.ExternalFlowExtensions
|
||||
private import FlowSummary as FlowSummary
|
||||
private import internal.DataFlowPrivate
|
||||
private import internal.FlowSummaryImpl
|
||||
private import internal.FlowSummaryImpl::Public
|
||||
private import internal.FlowSummaryImpl::Private
|
||||
private import internal.FlowSummaryImpl::Private::External
|
||||
private import internal.FlowSummaryImpl::Public
|
||||
private import codeql.mad.ModelValidation as SharedModelVal
|
||||
|
||||
/** Holds if `package` have MaD framework coverage. */
|
||||
private predicate packageHasMaDCoverage(string package) {
|
||||
private predicate relevantPackage(string package) {
|
||||
sourceModel(package, _, _, _, _, _, _, _, _, _) or
|
||||
sinkModel(package, _, _, _, _, _, _, _, _, _) or
|
||||
summaryModel(package, _, _, _, _, _, _, _, _, _, _)
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if `package` and `subpkg` have MaD framework coverage and `subpkg`
|
||||
* is a subpackage of `package`.
|
||||
*/
|
||||
private predicate packageHasASubpackage(string package, string subpkg) {
|
||||
packageHasMaDCoverage(package) and
|
||||
packageHasMaDCoverage(subpkg) and
|
||||
subpkg.prefix(subpkg.indexOf(".")) = package
|
||||
private predicate packageLink(string shortpkg, string longpkg) {
|
||||
relevantPackage(shortpkg) and
|
||||
relevantPackage(longpkg) and
|
||||
longpkg.prefix(longpkg.indexOf(".")) = shortpkg
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if `package` has MaD framework coverage and it is not a subpackage of
|
||||
* any other package with MaD framework coverage.
|
||||
*/
|
||||
private predicate canonicalPackage(string package) {
|
||||
packageHasMaDCoverage(package) and not packageHasASubpackage(_, package)
|
||||
relevantPackage(package) and not packageLink(_, package)
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if `package` and `subpkg` have MaD framework coverage, `subpkg` is a
|
||||
* subpackage of `package` (or they are the same), and `package` is not a
|
||||
* subpackage of any other package with MaD framework coverage.
|
||||
*/
|
||||
private predicate canonicalPackageHasASubpackage(string package, string subpkg) {
|
||||
private predicate canonicalPkgLink(string package, string subpkg) {
|
||||
canonicalPackage(package) and
|
||||
(subpkg = package or packageHasASubpackage(package, subpkg))
|
||||
(subpkg = package or packageLink(package, subpkg))
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -121,13 +111,13 @@ private predicate canonicalPackageHasASubpackage(string package, string subpkg)
|
||||
* which have MaD framework coverage (including `package` itself).
|
||||
*/
|
||||
predicate modelCoverage(string package, int pkgs, string kind, string part, int n) {
|
||||
pkgs = strictcount(string subpkg | canonicalPackageHasASubpackage(package, subpkg)) and
|
||||
pkgs = strictcount(string subpkg | canonicalPkgLink(package, subpkg)) and
|
||||
(
|
||||
part = "source" and
|
||||
n =
|
||||
strictcount(string subpkg, string type, boolean subtypes, string name, string signature,
|
||||
string ext, string output, string provenance |
|
||||
canonicalPackageHasASubpackage(package, subpkg) and
|
||||
canonicalPkgLink(package, subpkg) and
|
||||
sourceModel(subpkg, type, subtypes, name, signature, ext, output, kind, provenance, _)
|
||||
)
|
||||
or
|
||||
@@ -135,7 +125,7 @@ predicate modelCoverage(string package, int pkgs, string kind, string part, int
|
||||
n =
|
||||
strictcount(string subpkg, string type, boolean subtypes, string name, string signature,
|
||||
string ext, string input, string provenance |
|
||||
canonicalPackageHasASubpackage(package, subpkg) and
|
||||
canonicalPkgLink(package, subpkg) and
|
||||
sinkModel(subpkg, type, subtypes, name, signature, ext, input, kind, provenance, _)
|
||||
)
|
||||
or
|
||||
@@ -143,7 +133,7 @@ predicate modelCoverage(string package, int pkgs, string kind, string part, int
|
||||
n =
|
||||
strictcount(string subpkg, string type, boolean subtypes, string name, string signature,
|
||||
string ext, string input, string output, string provenance |
|
||||
canonicalPackageHasASubpackage(package, subpkg) and
|
||||
canonicalPkgLink(package, subpkg) and
|
||||
summaryModel(subpkg, type, subtypes, name, signature, ext, input, output, kind, provenance,
|
||||
_)
|
||||
)
|
||||
@@ -152,8 +142,23 @@ predicate modelCoverage(string package, int pkgs, string kind, string part, int
|
||||
|
||||
/** Provides a query predicate to check the MaD models for validation errors. */
|
||||
module ModelValidation {
|
||||
private import codeql.dataflow.internal.AccessPathSyntax as AccessPathSyntax
|
||||
|
||||
private predicate getRelevantAccessPath(string path) {
|
||||
summaryModel(_, _, _, _, _, _, path, _, _, _, _) or
|
||||
summaryModel(_, _, _, _, _, _, _, path, _, _, _) or
|
||||
sinkModel(_, _, _, _, _, _, path, _, _, _) or
|
||||
sourceModel(_, _, _, _, _, _, path, _, _, _)
|
||||
}
|
||||
|
||||
private module MkAccessPath = AccessPathSyntax::AccessPath<getRelevantAccessPath/1>;
|
||||
|
||||
class AccessPath = MkAccessPath::AccessPath;
|
||||
|
||||
class AccessPathToken = MkAccessPath::AccessPathToken;
|
||||
|
||||
private string getInvalidModelInput() {
|
||||
exists(string pred, AccessPath input, string part |
|
||||
exists(string pred, AccessPath input, AccessPathToken part |
|
||||
sinkModel(_, _, _, _, _, _, input, _, _, _) and pred = "sink"
|
||||
or
|
||||
summaryModel(_, _, _, _, _, _, input, _, _, _, _) and pred = "summary"
|
||||
@@ -161,24 +166,33 @@ module ModelValidation {
|
||||
(
|
||||
invalidSpecComponent(input, part) and
|
||||
not part = "" and
|
||||
not parseArg(part, _)
|
||||
not (part = "Argument" and pred = "sink") and
|
||||
not parseArg(part, _) and
|
||||
not part.getName() = "Field"
|
||||
or
|
||||
part = input.getToken(_) and
|
||||
part = input.getToken(0) and
|
||||
parseParam(part, _)
|
||||
or
|
||||
invalidIndexComponent(input, part)
|
||||
) and
|
||||
result = "Unrecognized input specification \"" + part + "\" in " + pred + " model."
|
||||
)
|
||||
}
|
||||
|
||||
private string getInvalidModelOutput() {
|
||||
exists(string pred, string output, string part |
|
||||
exists(string pred, AccessPath output, AccessPathToken part |
|
||||
sourceModel(_, _, _, _, _, _, output, _, _, _) and pred = "source"
|
||||
or
|
||||
summaryModel(_, _, _, _, _, _, _, output, _, _, _) and pred = "summary"
|
||||
|
|
||||
invalidSpecComponent(output, part) and
|
||||
not part = "" and
|
||||
not (part = "Parameter" and pred = "source") and
|
||||
(
|
||||
invalidSpecComponent(output, part) and
|
||||
not part = "" and
|
||||
not (part = ["Argument", "Parameter"] and pred = "source") and
|
||||
not part.getName() = "Field"
|
||||
or
|
||||
invalidIndexComponent(output, part)
|
||||
) and
|
||||
result = "Unrecognized output specification \"" + part + "\" in " + pred + " model."
|
||||
)
|
||||
}
|
||||
@@ -189,6 +203,8 @@ module ModelValidation {
|
||||
predicate sinkKind(string kind) { sinkModel(_, _, _, _, _, _, _, kind, _, _) }
|
||||
|
||||
predicate sourceKind(string kind) { sourceModel(_, _, _, _, _, _, _, kind, _, _) }
|
||||
|
||||
predicate neutralKind(string kind) { neutralModel(_, _, _, _, kind, _) }
|
||||
}
|
||||
|
||||
private module KindVal = SharedModelVal::KindValidation<KindValConfig>;
|
||||
@@ -204,6 +220,10 @@ module ModelValidation {
|
||||
or
|
||||
summaryModel(package, type, _, name, signature, ext, _, _, _, provenance, _) and
|
||||
pred = "summary"
|
||||
or
|
||||
neutralModel(package, type, name, signature, _, provenance) and
|
||||
ext = "" and
|
||||
pred = "neutral"
|
||||
|
|
||||
not package.replaceAll("$ANYVERSION", "").regexpMatch("[a-zA-Z0-9_\\./-]*") and
|
||||
result = "Dubious package \"" + package + "\" in " + pred + " model."
|
||||
@@ -239,31 +259,15 @@ pragma[nomagic]
|
||||
private predicate elementSpec(
|
||||
string package, string type, boolean subtypes, string name, string signature, string ext
|
||||
) {
|
||||
sourceModel(package, type, subtypes, name, signature, ext, _, _, _, _) or
|
||||
sinkModel(package, type, subtypes, name, signature, ext, _, _, _, _) or
|
||||
sourceModel(package, type, subtypes, name, signature, ext, _, _, _, _)
|
||||
or
|
||||
sinkModel(package, type, subtypes, name, signature, ext, _, _, _, _)
|
||||
or
|
||||
summaryModel(package, type, subtypes, name, signature, ext, _, _, _, _, _)
|
||||
}
|
||||
|
||||
private string paramsStringPart(Function f, int i) {
|
||||
i = -1 and result = "("
|
||||
or
|
||||
exists(int n, string p | f.getParameterType(n).toString() = p |
|
||||
i = 2 * n and result = p
|
||||
or
|
||||
i = 2 * n - 1 and result = "," and n != 0
|
||||
)
|
||||
or
|
||||
i = 2 * f.getNumParameter() and result = ")"
|
||||
neutralModel(package, type, name, signature, _, _) and ext = "" and subtypes = false
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a parenthesized string containing all parameter types of this callable, separated by a comma.
|
||||
*
|
||||
* Returns the empty string if the callable has no parameters.
|
||||
* Parameter types are represented by their type erasure.
|
||||
*/
|
||||
string paramsString(Function f) { result = concat(int i | | paramsStringPart(f, i) order by i) }
|
||||
|
||||
bindingset[p]
|
||||
private string interpretPackage(string p) {
|
||||
exists(string r | r = "([^$]+)([./]\\$ANYVERSION(/|$)(.*))?" |
|
||||
@@ -276,6 +280,7 @@ private string interpretPackage(string p) {
|
||||
}
|
||||
|
||||
/** Gets the source/sink/summary element corresponding to the supplied parameters. */
|
||||
cached
|
||||
SourceSinkInterpretationInput::SourceOrSinkElement interpretElement(
|
||||
string pkg, string type, boolean subtypes, string name, string signature, string ext
|
||||
) {
|
||||
@@ -296,22 +301,16 @@ SourceSinkInterpretationInput::SourceOrSinkElement interpretElement(
|
||||
)
|
||||
}
|
||||
|
||||
/** Holds if there is an external specification for `f`. */
|
||||
predicate hasExternalSpecification(Function f) {
|
||||
f = any(SummarizedCallable sc).asFunction()
|
||||
or
|
||||
exists(SourceSinkInterpretationInput::SourceOrSinkElement e | f = e.asEntity() |
|
||||
SourceSinkInterpretationInput::sourceElement(e, _, _, _, _) or
|
||||
SourceSinkInterpretationInput::sinkElement(e, _, _, _, _)
|
||||
)
|
||||
}
|
||||
|
||||
private predicate parseField(AccessPathToken c, DataFlow::FieldContent f) {
|
||||
exists(string fieldRegex, string package, string className, string fieldName |
|
||||
fieldRegex = "^Field\\[(.*)\\.([^.]+)\\.([^.]+)\\]$" and
|
||||
package = c.regexpCapture(fieldRegex, 1) and
|
||||
className = c.regexpCapture(fieldRegex, 2) and
|
||||
fieldName = c.regexpCapture(fieldRegex, 3) and
|
||||
exists(
|
||||
string fieldRegex, string qualifiedName, string package, string className, string fieldName
|
||||
|
|
||||
c.getName() = "Field" and
|
||||
qualifiedName = c.getAnArgument() and
|
||||
fieldRegex = "^(.*)\\.([^.]+)\\.([^.]+)$" and
|
||||
package = qualifiedName.regexpCapture(fieldRegex, 1) and
|
||||
className = qualifiedName.regexpCapture(fieldRegex, 2) and
|
||||
fieldName = qualifiedName.regexpCapture(fieldRegex, 3) and
|
||||
f.getField().hasQualifiedName(package, className, fieldName)
|
||||
)
|
||||
}
|
||||
@@ -328,11 +327,12 @@ class SyntheticField extends string {
|
||||
}
|
||||
|
||||
private predicate parseSynthField(AccessPathToken c, string f) {
|
||||
c.regexpCapture("SyntheticField\\[([.a-zA-Z0-9]+)\\]", 1) = f
|
||||
c.getName() = "SyntheticField" and
|
||||
f = c.getAnArgument()
|
||||
}
|
||||
|
||||
/** Holds if the specification component parses as a `Content`. */
|
||||
predicate parseContent(string component, DataFlow::Content content) {
|
||||
predicate parseContent(AccessPathToken component, DataFlow::Content content) {
|
||||
parseField(component, content)
|
||||
or
|
||||
parseSynthField(component, content.(DataFlow::SyntheticFieldContent).getField())
|
||||
@@ -387,29 +387,15 @@ predicate sourceNode(DataFlow::Node node, string kind) { sourceNode(node, kind,
|
||||
*/
|
||||
predicate sinkNode(DataFlow::Node node, string kind) { sinkNode(node, kind, _) }
|
||||
|
||||
private predicate interpretSummary(
|
||||
Callable c, string input, string output, string kind, string provenance, string model
|
||||
) {
|
||||
exists(
|
||||
string namespace, string type, boolean subtypes, string name, string signature, string ext,
|
||||
QlBuiltins::ExtensionId madId
|
||||
|
|
||||
summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance,
|
||||
madId) and
|
||||
model = "MaD:" + madId.toString() and
|
||||
c.asFunction() = interpretElement(namespace, type, subtypes, name, signature, ext).asEntity()
|
||||
)
|
||||
}
|
||||
|
||||
// adapter class for converting Mad summaries to `SummarizedCallable`s
|
||||
private class SummarizedCallableAdapter extends SummarizedCallable {
|
||||
SummarizedCallableAdapter() { interpretSummary(this, _, _, _, _, _) }
|
||||
SummarizedCallableAdapter() { summaryElement(this, _, _, _, _, _) }
|
||||
|
||||
private predicate relevantSummaryElementManual(
|
||||
string input, string output, string kind, string model
|
||||
) {
|
||||
exists(Provenance provenance |
|
||||
interpretSummary(this, input, output, kind, provenance, model) and
|
||||
summaryElement(this, input, output, kind, provenance, model) and
|
||||
provenance.isManual()
|
||||
)
|
||||
}
|
||||
@@ -418,8 +404,12 @@ private class SummarizedCallableAdapter extends SummarizedCallable {
|
||||
string input, string output, string kind, string model
|
||||
) {
|
||||
exists(Provenance provenance |
|
||||
interpretSummary(this, input, output, kind, provenance, model) and
|
||||
summaryElement(this, input, output, kind, provenance, model) and
|
||||
provenance.isGenerated()
|
||||
) and
|
||||
not exists(Provenance provenance |
|
||||
neutralElement(this, "summary", provenance) and
|
||||
provenance.isManual()
|
||||
)
|
||||
}
|
||||
|
||||
@@ -437,7 +427,7 @@ private class SummarizedCallableAdapter extends SummarizedCallable {
|
||||
}
|
||||
|
||||
override predicate hasProvenance(Provenance provenance) {
|
||||
interpretSummary(this, _, _, _, provenance, _)
|
||||
summaryElement(this, _, _, _, provenance, _)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -446,13 +436,7 @@ private class NeutralCallableAdapter extends NeutralCallable {
|
||||
string kind;
|
||||
string provenance_;
|
||||
|
||||
NeutralCallableAdapter() {
|
||||
// Neutral models have not been implemented for Go.
|
||||
none() and
|
||||
exists(this) and
|
||||
exists(kind) and
|
||||
exists(provenance_)
|
||||
}
|
||||
NeutralCallableAdapter() { neutralElement(this, kind, provenance_) }
|
||||
|
||||
override string getKind() { result = kind }
|
||||
|
||||
|
||||
@@ -25,3 +25,10 @@ extensible predicate summaryModel(
|
||||
string package, string type, boolean subtypes, string name, string signature, string ext,
|
||||
string input, string output, string kind, string provenance, QlBuiltins::ExtensionId madId
|
||||
);
|
||||
|
||||
/**
|
||||
* Holds if a neutral model exists for the given parameters.
|
||||
*/
|
||||
extensible predicate neutralModel(
|
||||
string package, string type, string name, string signature, string kind, string provenance
|
||||
);
|
||||
|
||||
@@ -15,6 +15,11 @@ private module FlowSummaries {
|
||||
private import semmle.go.dataflow.FlowSummary as F
|
||||
}
|
||||
|
||||
bindingset[pos]
|
||||
private string positionToString(int pos) {
|
||||
if pos = -1 then result = "receiver" else result = pos.toString()
|
||||
}
|
||||
|
||||
module Input implements InputSig<Location, DataFlowImplSpecific::GoDataFlow> {
|
||||
class SummarizedCallableBase = Callable;
|
||||
|
||||
@@ -22,9 +27,9 @@ module Input implements InputSig<Location, DataFlowImplSpecific::GoDataFlow> {
|
||||
|
||||
ReturnKind getStandardReturnValueKind() { result = getReturnKind(0) }
|
||||
|
||||
string encodeParameterPosition(ParameterPosition pos) { result = pos.toString() }
|
||||
string encodeParameterPosition(ParameterPosition pos) { result = positionToString(pos) }
|
||||
|
||||
string encodeArgumentPosition(ArgumentPosition pos) { result = pos.toString() }
|
||||
string encodeArgumentPosition(ArgumentPosition pos) { result = positionToString(pos) }
|
||||
|
||||
string encodeReturn(ReturnKind rk, string arg) {
|
||||
exists(int pos |
|
||||
@@ -273,6 +278,37 @@ module Private {
|
||||
module External {
|
||||
import Impl::Private::External
|
||||
import Impl::Private::External::SourceSinkInterpretation<SourceSinkInterpretationInput>
|
||||
|
||||
/**
|
||||
* Holds if an external flow summary exists for `c` with input specification
|
||||
* `input`, output specification `output`, kind `kind`, and provenance `provenance`.
|
||||
*/
|
||||
predicate summaryElement(
|
||||
Input::SummarizedCallableBase c, string input, string output, string kind, string provenance,
|
||||
string model
|
||||
) {
|
||||
exists(
|
||||
string namespace, string type, boolean subtypes, string name, string signature, string ext,
|
||||
QlBuiltins::ExtensionId madId
|
||||
|
|
||||
summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind,
|
||||
provenance, madId) and
|
||||
model = "MaD:" + madId.toString() and
|
||||
c.asFunction() =
|
||||
interpretElement(namespace, type, subtypes, name, signature, ext).asEntity()
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if a neutral model exists for `c` of kind `kind`
|
||||
* and with provenance `provenance`.
|
||||
*/
|
||||
predicate neutralElement(Input::SummarizedCallableBase c, string kind, string provenance) {
|
||||
exists(string namespace, string type, string name, string signature |
|
||||
neutralModel(namespace, type, name, signature, kind, provenance) and
|
||||
c.asFunction() = interpretElement(namespace, type, false, name, signature, "").asEntity()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
testFailures
|
||||
failures
|
||||
invalidModelRow
|
||||
testFailures
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import go
|
||||
import semmle.go.dataflow.ExternalFlow
|
||||
import ModelValidation
|
||||
import TestUtilities.InlineExpectationsTest
|
||||
import experimental.frameworks.DecompressionBombs::DecompressionBomb
|
||||
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
invalidModelRow
|
||||
testFailures
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import go
|
||||
import semmle.go.dataflow.ExternalFlow
|
||||
import ModelValidation
|
||||
import experimental.frameworks.CleverGo
|
||||
import TestUtilities.InlineFlowTest
|
||||
import DefaultFlowTest
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
invalidModelRow
|
||||
testFailures
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import go
|
||||
import semmle.go.dataflow.ExternalFlow
|
||||
import ModelValidation
|
||||
import experimental.frameworks.Fiber
|
||||
import TestUtilities.InlineFlowTest
|
||||
import DefaultFlowTest
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
failures
|
||||
invalidModelRow
|
||||
testFailures
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import go
|
||||
import semmle.go.dataflow.ExternalFlow
|
||||
import ModelValidation
|
||||
import TestUtilities.InlineExpectationsTest
|
||||
|
||||
module LoggerTest implements TestSig {
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
invalidModelRow
|
||||
testFailures
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import go
|
||||
import semmle.go.dataflow.ExternalFlow
|
||||
import ModelValidation
|
||||
import TestUtilities.InlineFlowTest
|
||||
import DefaultFlowTest
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
invalidModelRow
|
||||
edges
|
||||
| test.go:9:9:9:11 | selection of c [collection] | test.go:9:7:9:11 | <-... | provenance | |
|
||||
| test.go:13:16:13:16 | definition of s [pointer, c, collection] | test.go:16:2:16:2 | s [pointer, c, collection] | provenance | |
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import go
|
||||
import semmle.go.dataflow.ExternalFlow
|
||||
import ModelValidation
|
||||
import TestUtilities.InlineFlowTest
|
||||
|
||||
module Flow = DataFlow::Global<DefaultFlowConfig>;
|
||||
|
||||
@@ -5,10 +5,11 @@ extensions:
|
||||
data:
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgRes", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgRes1", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "taint", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgQual", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepQualRes", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepQualArg", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "taint", "df-generated"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgArgIgnored", "", "", "Argument[0]", "Argument[1]", "taint", "df-generated"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgQual", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepQualRes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepQualArg", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["github.com/nonexistent/test", "", False, "StepArgResNoQual", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/nonexistent/test", "", False, "StepArgResArrayContent", "", "", "Argument[0]", "ReturnValue.ArrayElement", "taint", "manual"]
|
||||
- ["github.com/nonexistent/test", "", False, "StepArgArrayContentRes", "", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"]
|
||||
@@ -21,17 +22,20 @@ extensions:
|
||||
- ["github.com/nonexistent/test", "", False, "GetElement", "", "", "Argument[0].Element", "ReturnValue", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "", False, "GetMapKey", "", "", "Argument[0].MapKey", "ReturnValue", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "", False, "SetElement", "", "", "Argument[0]", "ReturnValue.Element", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "C", False, "Get", "", "", "Argument[-1].Field[github.com/nonexistent/test.C.F]", "ReturnValue", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "C", False, "GetThroughPointer", "", "", "Argument[-1].Dereference.Field[github.com/nonexistent/test.C.F]", "ReturnValue", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "C", False, "Set", "", "", "Argument[0]", "Argument[-1].Field[github.com/nonexistent/test.C.F]", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "C", False, "SetThroughPointer", "", "", "Argument[0]", "Argument[-1].Dereference.Field[github.com/nonexistent/test.C.F]", "value", "manual"]
|
||||
|
||||
- ["github.com/nonexistent/test", "C", False, "Get", "", "", "Argument[receiver].Field[github.com/nonexistent/test.C.F]", "ReturnValue", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "C", False, "GetThroughPointer", "", "", "Argument[receiver].Dereference.Field[github.com/nonexistent/test.C.F]", "ReturnValue", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "C", False, "Set", "", "", "Argument[0]", "Argument[receiver].Field[github.com/nonexistent/test.C.F]", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "C", False, "SetThroughPointer", "", "", "Argument[0]", "Argument[receiver].Dereference.Field[github.com/nonexistent/test.C.F]", "value", "manual"]
|
||||
- addsTo:
|
||||
pack: codeql/go-all
|
||||
extensible: neutralModel
|
||||
data:
|
||||
- ["github.com/nonexistent/test", "T", "StepArgArgIgnored", "", "summary", "manual"]
|
||||
- addsTo:
|
||||
pack: codeql/go-all
|
||||
extensible: sourceModel
|
||||
data:
|
||||
- ["github.com/nonexistent/test", "A", False, "Src1", "", "", "ReturnValue", "qltest", "manual"]
|
||||
|
||||
- addsTo:
|
||||
pack: codeql/go-all
|
||||
extensible: sinkModel
|
||||
|
||||
@@ -1,44 +1,45 @@
|
||||
invalidModelRow
|
||||
#select
|
||||
| test.go:47:10:47:12 | arg | qltest |
|
||||
| test.go:48:2:48:13 | type assertion | qltest |
|
||||
| test.go:61:10:61:15 | taint1 | qltest |
|
||||
| test.go:64:10:64:15 | taint2 | qltest |
|
||||
| test.go:68:10:68:15 | taint3 | qltest |
|
||||
| test.go:72:10:72:15 | taint4 | qltest |
|
||||
| test.go:75:10:75:15 | taint5 | qltest |
|
||||
| test.go:79:10:79:15 | taint6 | qltest |
|
||||
| test.go:82:10:82:15 | taint7 | qltest |
|
||||
| test.go:85:10:85:18 | index expression | qltest |
|
||||
| test.go:87:11:87:11 | x | qltest |
|
||||
| test.go:90:11:90:11 | x | qltest |
|
||||
| test.go:95:10:95:15 | taint9 | qltest |
|
||||
| test.go:98:10:98:33 | call to GetElement | qltest |
|
||||
| test.go:99:10:99:18 | <-... | qltest |
|
||||
| test.go:101:11:101:11 | e | qltest |
|
||||
| test.go:104:11:104:11 | e | qltest |
|
||||
| test.go:109:10:109:16 | taint11 | qltest |
|
||||
| test.go:112:10:112:32 | call to GetMapKey | qltest |
|
||||
| test.go:114:11:114:11 | k | qltest |
|
||||
| test.go:117:11:117:11 | k | qltest |
|
||||
| test.go:120:11:120:11 | k | qltest |
|
||||
| test.go:123:11:123:11 | k | qltest |
|
||||
| test.go:128:10:128:16 | taint13 | qltest |
|
||||
| test.go:131:10:131:20 | index expression | qltest |
|
||||
| test.go:133:11:133:11 | v | qltest |
|
||||
| test.go:136:11:136:11 | v | qltest |
|
||||
| test.go:141:10:141:16 | taint15 | qltest |
|
||||
| test.go:145:10:145:17 | index expression | qltest |
|
||||
| test.go:151:10:151:18 | index expression | qltest |
|
||||
| test.go:156:10:156:16 | taint16 | qltest |
|
||||
| test.go:160:10:160:13 | selection of F | qltest |
|
||||
| test.go:163:10:163:17 | call to Get | qltest |
|
||||
| test.go:167:10:167:17 | call to Get | qltest |
|
||||
| test.go:48:10:48:12 | arg | qltest |
|
||||
| test.go:49:2:49:13 | type assertion | qltest |
|
||||
| test.go:62:10:62:15 | taint1 | qltest |
|
||||
| test.go:65:10:65:15 | taint2 | qltest |
|
||||
| test.go:69:10:69:15 | taint3 | qltest |
|
||||
| test.go:73:10:73:22 | taint3ignored | qltest |
|
||||
| test.go:77:10:77:15 | taint4 | qltest |
|
||||
| test.go:80:10:80:15 | taint5 | qltest |
|
||||
| test.go:84:10:84:15 | taint6 | qltest |
|
||||
| test.go:87:10:87:15 | taint7 | qltest |
|
||||
| test.go:90:10:90:18 | index expression | qltest |
|
||||
| test.go:92:11:92:11 | x | qltest |
|
||||
| test.go:95:11:95:11 | x | qltest |
|
||||
| test.go:100:10:100:15 | taint9 | qltest |
|
||||
| test.go:103:10:103:33 | call to GetElement | qltest |
|
||||
| test.go:104:10:104:18 | <-... | qltest |
|
||||
| test.go:106:11:106:11 | e | qltest |
|
||||
| test.go:109:11:109:11 | e | qltest |
|
||||
| test.go:114:10:114:16 | taint11 | qltest |
|
||||
| test.go:117:10:117:32 | call to GetMapKey | qltest |
|
||||
| test.go:119:11:119:11 | k | qltest |
|
||||
| test.go:122:11:122:11 | k | qltest |
|
||||
| test.go:125:11:125:11 | k | qltest |
|
||||
| test.go:128:11:128:11 | k | qltest |
|
||||
| test.go:133:10:133:16 | taint13 | qltest |
|
||||
| test.go:136:10:136:20 | index expression | qltest |
|
||||
| test.go:138:11:138:11 | v | qltest |
|
||||
| test.go:141:11:141:11 | v | qltest |
|
||||
| test.go:146:10:146:16 | taint15 | qltest |
|
||||
| test.go:150:10:150:17 | index expression | qltest |
|
||||
| test.go:156:10:156:18 | index expression | qltest |
|
||||
| test.go:161:10:161:16 | taint16 | qltest |
|
||||
| test.go:165:10:165:13 | selection of F | qltest |
|
||||
| test.go:168:10:168:17 | call to Get | qltest |
|
||||
| test.go:172:10:172:17 | call to Get | qltest |
|
||||
| test.go:176:10:176:14 | selection of F | qltest |
|
||||
| test.go:179:10:179:32 | call to GetThroughPointer | qltest |
|
||||
| test.go:183:10:183:32 | call to GetThroughPointer | qltest |
|
||||
| test.go:177:10:177:17 | call to Get | qltest |
|
||||
| test.go:181:10:181:14 | selection of F | qltest |
|
||||
| test.go:184:10:184:32 | call to GetThroughPointer | qltest |
|
||||
| test.go:188:10:188:32 | call to GetThroughPointer | qltest |
|
||||
| test.go:194:17:194:20 | arg1 | qltest |
|
||||
| test.go:194:23:194:26 | arg2 | qltest |
|
||||
| test.go:194:29:194:32 | arg3 | qltest |
|
||||
| test.go:193:10:193:32 | call to GetThroughPointer | qltest |
|
||||
| test.go:199:17:199:20 | arg1 | qltest |
|
||||
| test.go:199:23:199:26 | arg2 | qltest |
|
||||
| test.go:199:29:199:32 | arg3 | qltest |
|
||||
|
||||
@@ -4,5 +4,5 @@ extensions:
|
||||
extensible: sinkModel
|
||||
data:
|
||||
- ["github.com/nonexistent/test", "B", False, "Sink1", "", "", "Argument[0]", "qltest", "manual"]
|
||||
- ["github.com/nonexistent/test", "B", False, "SinkMethod", "", "", "Argument[-1]", "qltest", "manual"]
|
||||
- ["github.com/nonexistent/test", "B", False, "SinkManyArgs", "", "", "Argument[0..2]", "qltest", "manual"]
|
||||
- ["github.com/nonexistent/test", "B", False, "SinkMethod", "", "", "Argument[receiver]", "qltest", "manual"]
|
||||
- ["github.com/nonexistent/test", "B", False, "SinkManyArgs", "", "", "Argument[0..2]", "qltest", "manual"]
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
invalidModelRow
|
||||
#select
|
||||
| test.go:10:6:10:8 | definition of arg | qltest-arg |
|
||||
| test.go:38:8:38:15 | call to Src1 | qltest |
|
||||
| test.go:39:8:39:15 | call to Src2 | qltest |
|
||||
| test.go:39:8:39:15 | call to Src2 | qltest-w-subtypes |
|
||||
| test.go:40:8:40:16 | call to Src2 | qltest-w-subtypes |
|
||||
| test.go:41:2:41:21 | ... = ...[0] | qltest |
|
||||
| test.go:41:2:41:21 | ... = ...[1] | qltest-w-subtypes |
|
||||
| test.go:42:2:42:22 | ... = ...[1] | qltest-w-subtypes |
|
||||
| test.go:58:9:58:16 | call to Src1 | qltest |
|
||||
| test.go:97:46:97:53 | call to Src1 | qltest |
|
||||
| test.go:107:35:107:42 | call to Src1 | qltest |
|
||||
| test.go:111:42:111:49 | call to Src1 | qltest |
|
||||
| test.go:154:8:154:15 | call to Src1 | qltest |
|
||||
| test.go:159:9:159:16 | call to Src1 | qltest |
|
||||
| test.go:162:15:162:22 | call to Src1 | qltest |
|
||||
| test.go:166:9:166:16 | call to Src1 | qltest |
|
||||
| test.go:170:9:170:16 | call to Src1 | qltest |
|
||||
| test.go:175:24:175:31 | call to Src1 | qltest |
|
||||
| test.go:178:17:178:24 | call to Src1 | qltest |
|
||||
| test.go:182:24:182:31 | call to Src1 | qltest |
|
||||
| test.go:186:24:186:31 | call to Src1 | qltest |
|
||||
| test.go:39:8:39:15 | call to Src1 | qltest |
|
||||
| test.go:40:8:40:15 | call to Src2 | qltest |
|
||||
| test.go:40:8:40:15 | call to Src2 | qltest-w-subtypes |
|
||||
| test.go:41:8:41:16 | call to Src2 | qltest-w-subtypes |
|
||||
| test.go:42:2:42:21 | ... = ...[0] | qltest |
|
||||
| test.go:42:2:42:21 | ... = ...[1] | qltest-w-subtypes |
|
||||
| test.go:43:2:43:22 | ... = ...[1] | qltest-w-subtypes |
|
||||
| test.go:59:9:59:16 | call to Src1 | qltest |
|
||||
| test.go:102:46:102:53 | call to Src1 | qltest |
|
||||
| test.go:112:35:112:42 | call to Src1 | qltest |
|
||||
| test.go:116:42:116:49 | call to Src1 | qltest |
|
||||
| test.go:159:8:159:15 | call to Src1 | qltest |
|
||||
| test.go:164:9:164:16 | call to Src1 | qltest |
|
||||
| test.go:167:15:167:22 | call to Src1 | qltest |
|
||||
| test.go:171:9:171:16 | call to Src1 | qltest |
|
||||
| test.go:175:9:175:16 | call to Src1 | qltest |
|
||||
| test.go:180:24:180:31 | call to Src1 | qltest |
|
||||
| test.go:183:17:183:24 | call to Src1 | qltest |
|
||||
| test.go:187:24:187:31 | call to Src1 | qltest |
|
||||
| test.go:191:24:191:31 | call to Src1 | qltest |
|
||||
|
||||
@@ -3,14 +3,14 @@ invalidModelRow
|
||||
| test.go:17:23:17:25 | arg | test.go:17:10:17:26 | call to StepArgRes |
|
||||
| test.go:18:27:18:29 | arg | test.go:18:2:18:30 | ... = ...[1] |
|
||||
| test.go:19:15:19:17 | arg | test.go:11:6:11:9 | definition of arg1 |
|
||||
| test.go:20:16:20:18 | arg | test.go:13:6:13:6 | definition of t |
|
||||
| test.go:21:10:21:10 | t | test.go:21:10:21:24 | call to StepQualRes |
|
||||
| test.go:22:2:22:2 | t | test.go:10:6:10:8 | definition of arg |
|
||||
| test.go:23:32:23:34 | arg | test.go:23:10:23:35 | call to StepArgResNoQual |
|
||||
| test.go:60:25:60:27 | src | test.go:60:12:60:28 | call to StepArgRes |
|
||||
| test.go:63:29:63:31 | src | test.go:63:2:63:32 | ... := ...[1] |
|
||||
| test.go:67:15:67:17 | src | test.go:66:6:66:11 | definition of taint3 |
|
||||
| test.go:71:21:71:23 | src | test.go:70:6:70:11 | definition of taint4 |
|
||||
| test.go:74:13:74:25 | type assertion | test.go:74:12:74:40 | call to StepQualRes |
|
||||
| test.go:78:3:78:15 | type assertion | test.go:77:6:77:11 | definition of taint6 |
|
||||
| test.go:81:34:81:36 | src | test.go:81:12:81:37 | call to StepArgResNoQual |
|
||||
| test.go:21:16:21:18 | arg | test.go:13:6:13:6 | definition of t |
|
||||
| test.go:22:10:22:10 | t | test.go:22:10:22:24 | call to StepQualRes |
|
||||
| test.go:23:2:23:2 | t | test.go:10:6:10:8 | definition of arg |
|
||||
| test.go:24:32:24:34 | arg | test.go:24:10:24:35 | call to StepArgResNoQual |
|
||||
| test.go:61:25:61:27 | src | test.go:61:12:61:28 | call to StepArgRes |
|
||||
| test.go:64:29:64:31 | src | test.go:64:2:64:32 | ... := ...[1] |
|
||||
| test.go:68:15:68:17 | src | test.go:67:6:67:11 | definition of taint3 |
|
||||
| test.go:76:21:76:23 | src | test.go:75:6:75:11 | definition of taint4 |
|
||||
| test.go:79:13:79:25 | type assertion | test.go:79:12:79:40 | call to StepQualRes |
|
||||
| test.go:83:3:83:15 | type assertion | test.go:82:6:82:11 | definition of taint6 |
|
||||
| test.go:86:34:86:36 | src | test.go:86:12:86:37 | call to StepArgResNoQual |
|
||||
|
||||
@@ -5,10 +5,16 @@ extensions:
|
||||
data:
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgRes", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgRes1", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "taint", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgQual", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepQualRes", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepQualArg", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "taint", "df-generated"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgArgIgnored", "", "", "Argument[0]", "Argument[1]", "taint", "df-generated"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgQual", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepQualRes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepQualArg", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
|
||||
- ["github.com/nonexistent/test", "", False, "StepArgResNoQual", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["github.com/nonexistent/test", "", False, "StepArgResContent", "", "", "Argument[0]", "ReturnValue.ArrayElement", "taint", "manual"]
|
||||
- ["github.com/nonexistent/test", "", False, "StepArgContentRes", "", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"]
|
||||
- addsTo:
|
||||
pack: codeql/go-all
|
||||
extensible: neutralModel
|
||||
data:
|
||||
- ["github.com/nonexistent/test", "T", "StepArgArgIgnored", "", "summary", "manual"]
|
||||
|
||||
@@ -17,6 +17,7 @@ func main() {
|
||||
taint = t.StepArgRes(arg)
|
||||
_, taint = t.StepArgRes1(arg)
|
||||
t.StepArgArg(arg, arg1)
|
||||
t.StepArgArgIgnored(arg, arg1)
|
||||
t.StepArgQual(arg)
|
||||
taint = t.StepQualRes()
|
||||
t.StepQualArg(arg)
|
||||
@@ -67,6 +68,10 @@ func simpleflow() {
|
||||
t.StepArgArg(src, taint3)
|
||||
b.Sink1(taint3) // $ hasTaintFlow="taint3"
|
||||
|
||||
var taint3ignored interface{}
|
||||
t.StepArgArgIgnored(src, taint3ignored)
|
||||
b.Sink1(taint3ignored)
|
||||
|
||||
var taint4 test.T
|
||||
taint4.StepArgQual(src)
|
||||
b.Sink1(taint4) // $ hasTaintFlow="taint4"
|
||||
|
||||
@@ -8,6 +8,8 @@ func (t *T) StepArgRes1(arg interface{}) (interface{}, interface{}) { return nil
|
||||
|
||||
func (t *T) StepArgArg(a1 interface{}, a2 interface{}) {}
|
||||
|
||||
func (t *T) StepArgArgIgnored(a1 interface{}, a2 interface{}) {}
|
||||
|
||||
func (t *T) StepArgQual(arg interface{}) {}
|
||||
|
||||
func (t *T) StepQualRes() interface{} { return nil }
|
||||
|
||||
@@ -5,10 +5,11 @@ extensions:
|
||||
data:
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgRes", "", "", "Argument[0]", "ReturnValue", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgRes1", "", "", "Argument[0]", "ReturnValue[1]", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgQual", "", "", "Argument[0]", "Argument[-1]", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepQualRes", "", "", "Argument[-1]", "ReturnValue", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepQualArg", "", "", "Argument[-1]", "Argument[0]", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "value", "df-generated"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgArgIgnored", "", "", "Argument[0]", "Argument[1]", "value", "df-generated"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgQual", "", "", "Argument[0]", "Argument[receiver]", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepQualRes", "", "", "Argument[receiver]", "ReturnValue", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepQualArg", "", "", "Argument[receiver]", "Argument[0]", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "", False, "StepArgResNoQual", "", "", "Argument[0]", "ReturnValue", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "", False, "StepArgResArrayContent", "", "", "Argument[0]", "ReturnValue.ArrayElement", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "", False, "StepArgArrayContentRes", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"]
|
||||
@@ -21,17 +22,20 @@ extensions:
|
||||
- ["github.com/nonexistent/test", "", False, "GetElement", "", "", "Argument[0].Element", "ReturnValue", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "", False, "GetMapKey", "", "", "Argument[0].MapKey", "ReturnValue", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "", False, "SetElement", "", "", "Argument[0]", "ReturnValue.Element", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "C", False, "Get", "", "", "Argument[-1].Field[github.com/nonexistent/test.C.F]", "ReturnValue", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "C", False, "GetThroughPointer", "", "", "Argument[-1].Dereference.Field[github.com/nonexistent/test.C.F]", "ReturnValue", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "C", False, "Set", "", "", "Argument[0]", "Argument[-1].Field[github.com/nonexistent/test.C.F]", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "C", False, "SetThroughPointer", "", "", "Argument[0]", "Argument[-1].Dereference.Field[github.com/nonexistent/test.C.F]", "value", "manual"]
|
||||
|
||||
- ["github.com/nonexistent/test", "C", False, "Get", "", "", "Argument[receiver].Field[github.com/nonexistent/test.C.F]", "ReturnValue", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "C", False, "GetThroughPointer", "", "", "Argument[receiver].Dereference.Field[github.com/nonexistent/test.C.F]", "ReturnValue", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "C", False, "Set", "", "", "Argument[0]", "Argument[receiver].Field[github.com/nonexistent/test.C.F]", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "C", False, "SetThroughPointer", "", "", "Argument[0]", "Argument[receiver].Dereference.Field[github.com/nonexistent/test.C.F]", "value", "manual"]
|
||||
- addsTo:
|
||||
pack: codeql/go-all
|
||||
extensible: neutralModel
|
||||
data:
|
||||
- ["github.com/nonexistent/test", "T", "StepArgArgIgnored", "", "summary", "manual"]
|
||||
- addsTo:
|
||||
pack: codeql/go-all
|
||||
extensible: sourceModel
|
||||
data:
|
||||
- ["github.com/nonexistent/test", "A", False, "Src1", "", "", "ReturnValue", "qltest", "manual"]
|
||||
|
||||
- addsTo:
|
||||
pack: codeql/go-all
|
||||
extensible: sinkModel
|
||||
|
||||
@@ -1,50 +1,51 @@
|
||||
invalidModelRow
|
||||
#select
|
||||
| test.go:47:10:47:12 | arg | qltest |
|
||||
| test.go:48:2:48:13 | type assertion | qltest |
|
||||
| test.go:61:10:61:15 | taint1 | qltest |
|
||||
| test.go:64:10:64:15 | taint2 | qltest |
|
||||
| test.go:68:10:68:15 | taint3 | qltest |
|
||||
| test.go:72:10:72:15 | taint4 | qltest |
|
||||
| test.go:75:10:75:15 | taint5 | qltest |
|
||||
| test.go:79:10:79:15 | taint6 | qltest |
|
||||
| test.go:82:10:82:15 | taint7 | qltest |
|
||||
| test.go:85:10:85:18 | index expression | qltest |
|
||||
| test.go:87:11:87:11 | x | qltest |
|
||||
| test.go:90:11:90:11 | x | qltest |
|
||||
| test.go:95:10:95:15 | taint9 | qltest |
|
||||
| test.go:98:10:98:33 | call to GetElement | qltest |
|
||||
| test.go:99:10:99:18 | <-... | qltest |
|
||||
| test.go:101:11:101:11 | e | qltest |
|
||||
| test.go:104:11:104:11 | e | qltest |
|
||||
| test.go:109:10:109:16 | taint11 | qltest |
|
||||
| test.go:112:10:112:32 | call to GetMapKey | qltest |
|
||||
| test.go:114:11:114:11 | k | qltest |
|
||||
| test.go:117:11:117:11 | k | qltest |
|
||||
| test.go:120:11:120:11 | k | qltest |
|
||||
| test.go:123:11:123:11 | k | qltest |
|
||||
| test.go:128:10:128:16 | taint13 | qltest |
|
||||
| test.go:131:10:131:20 | index expression | qltest |
|
||||
| test.go:133:11:133:11 | v | qltest |
|
||||
| test.go:136:11:136:11 | v | qltest |
|
||||
| test.go:141:10:141:16 | taint15 | qltest |
|
||||
| test.go:145:10:145:17 | index expression | qltest |
|
||||
| test.go:151:10:151:18 | index expression | qltest |
|
||||
| test.go:156:10:156:16 | taint16 | qltest |
|
||||
| test.go:160:10:160:13 | selection of F | qltest |
|
||||
| test.go:163:10:163:17 | call to Get | qltest |
|
||||
| test.go:167:10:167:17 | call to Get | qltest |
|
||||
| test.go:48:10:48:12 | arg | qltest |
|
||||
| test.go:49:2:49:13 | type assertion | qltest |
|
||||
| test.go:62:10:62:15 | taint1 | qltest |
|
||||
| test.go:65:10:65:15 | taint2 | qltest |
|
||||
| test.go:69:10:69:15 | taint3 | qltest |
|
||||
| test.go:73:10:73:22 | taint3ignored | qltest |
|
||||
| test.go:77:10:77:15 | taint4 | qltest |
|
||||
| test.go:80:10:80:15 | taint5 | qltest |
|
||||
| test.go:84:10:84:15 | taint6 | qltest |
|
||||
| test.go:87:10:87:15 | taint7 | qltest |
|
||||
| test.go:90:10:90:18 | index expression | qltest |
|
||||
| test.go:92:11:92:11 | x | qltest |
|
||||
| test.go:95:11:95:11 | x | qltest |
|
||||
| test.go:100:10:100:15 | taint9 | qltest |
|
||||
| test.go:103:10:103:33 | call to GetElement | qltest |
|
||||
| test.go:104:10:104:18 | <-... | qltest |
|
||||
| test.go:106:11:106:11 | e | qltest |
|
||||
| test.go:109:11:109:11 | e | qltest |
|
||||
| test.go:114:10:114:16 | taint11 | qltest |
|
||||
| test.go:117:10:117:32 | call to GetMapKey | qltest |
|
||||
| test.go:119:11:119:11 | k | qltest |
|
||||
| test.go:122:11:122:11 | k | qltest |
|
||||
| test.go:125:11:125:11 | k | qltest |
|
||||
| test.go:128:11:128:11 | k | qltest |
|
||||
| test.go:133:10:133:16 | taint13 | qltest |
|
||||
| test.go:136:10:136:20 | index expression | qltest |
|
||||
| test.go:138:11:138:11 | v | qltest |
|
||||
| test.go:141:11:141:11 | v | qltest |
|
||||
| test.go:146:10:146:16 | taint15 | qltest |
|
||||
| test.go:150:10:150:17 | index expression | qltest |
|
||||
| test.go:156:10:156:18 | index expression | qltest |
|
||||
| test.go:161:10:161:16 | taint16 | qltest |
|
||||
| test.go:165:10:165:13 | selection of F | qltest |
|
||||
| test.go:168:10:168:17 | call to Get | qltest |
|
||||
| test.go:172:10:172:17 | call to Get | qltest |
|
||||
| test.go:176:10:176:14 | selection of F | qltest |
|
||||
| test.go:179:10:179:32 | call to GetThroughPointer | qltest |
|
||||
| test.go:183:10:183:32 | call to GetThroughPointer | qltest |
|
||||
| test.go:177:10:177:17 | call to Get | qltest |
|
||||
| test.go:181:10:181:14 | selection of F | qltest |
|
||||
| test.go:184:10:184:32 | call to GetThroughPointer | qltest |
|
||||
| test.go:188:10:188:32 | call to GetThroughPointer | qltest |
|
||||
| test.go:194:17:194:20 | arg1 | qltest |
|
||||
| test.go:194:23:194:26 | arg2 | qltest |
|
||||
| test.go:194:29:194:32 | arg3 | qltest |
|
||||
| test.go:197:10:197:26 | call to max | qltest |
|
||||
| test.go:198:10:198:26 | call to max | qltest |
|
||||
| test.go:199:10:199:26 | call to max | qltest |
|
||||
| test.go:200:10:200:26 | call to min | qltest |
|
||||
| test.go:201:10:201:26 | call to min | qltest |
|
||||
| test.go:202:10:202:26 | call to min | qltest |
|
||||
| test.go:193:10:193:32 | call to GetThroughPointer | qltest |
|
||||
| test.go:199:17:199:20 | arg1 | qltest |
|
||||
| test.go:199:23:199:26 | arg2 | qltest |
|
||||
| test.go:199:29:199:32 | arg3 | qltest |
|
||||
| test.go:202:10:202:26 | call to max | qltest |
|
||||
| test.go:203:10:203:26 | call to max | qltest |
|
||||
| test.go:204:10:204:26 | call to max | qltest |
|
||||
| test.go:205:10:205:26 | call to min | qltest |
|
||||
| test.go:206:10:206:26 | call to min | qltest |
|
||||
| test.go:207:10:207:26 | call to min | qltest |
|
||||
|
||||
@@ -4,5 +4,5 @@ extensions:
|
||||
extensible: sinkModel
|
||||
data:
|
||||
- ["github.com/nonexistent/test", "B", False, "Sink1", "", "", "Argument[0]", "qltest", "manual"]
|
||||
- ["github.com/nonexistent/test", "B", False, "SinkMethod", "", "", "Argument[-1]", "qltest", "manual"]
|
||||
- ["github.com/nonexistent/test", "B", False, "SinkManyArgs", "", "", "Argument[0..2]", "qltest", "manual"]
|
||||
- ["github.com/nonexistent/test", "B", False, "SinkMethod", "", "", "Argument[receiver]", "qltest", "manual"]
|
||||
- ["github.com/nonexistent/test", "B", False, "SinkManyArgs", "", "", "Argument[0..2]", "qltest", "manual"]
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
invalidModelRow
|
||||
#select
|
||||
| test.go:10:6:10:8 | definition of arg | qltest-arg |
|
||||
| test.go:38:8:38:15 | call to Src1 | qltest |
|
||||
| test.go:39:8:39:15 | call to Src2 | qltest |
|
||||
| test.go:39:8:39:15 | call to Src2 | qltest-w-subtypes |
|
||||
| test.go:40:8:40:16 | call to Src2 | qltest-w-subtypes |
|
||||
| test.go:41:2:41:21 | ... = ...[0] | qltest |
|
||||
| test.go:41:2:41:21 | ... = ...[1] | qltest-w-subtypes |
|
||||
| test.go:42:2:42:22 | ... = ...[1] | qltest-w-subtypes |
|
||||
| test.go:58:9:58:16 | call to Src1 | qltest |
|
||||
| test.go:97:46:97:53 | call to Src1 | qltest |
|
||||
| test.go:107:35:107:42 | call to Src1 | qltest |
|
||||
| test.go:111:42:111:49 | call to Src1 | qltest |
|
||||
| test.go:154:8:154:15 | call to Src1 | qltest |
|
||||
| test.go:159:9:159:16 | call to Src1 | qltest |
|
||||
| test.go:162:15:162:22 | call to Src1 | qltest |
|
||||
| test.go:166:9:166:16 | call to Src1 | qltest |
|
||||
| test.go:170:9:170:16 | call to Src1 | qltest |
|
||||
| test.go:175:24:175:31 | call to Src1 | qltest |
|
||||
| test.go:178:17:178:24 | call to Src1 | qltest |
|
||||
| test.go:182:24:182:31 | call to Src1 | qltest |
|
||||
| test.go:186:24:186:31 | call to Src1 | qltest |
|
||||
| test.go:39:8:39:15 | call to Src1 | qltest |
|
||||
| test.go:40:8:40:15 | call to Src2 | qltest |
|
||||
| test.go:40:8:40:15 | call to Src2 | qltest-w-subtypes |
|
||||
| test.go:41:8:41:16 | call to Src2 | qltest-w-subtypes |
|
||||
| test.go:42:2:42:21 | ... = ...[0] | qltest |
|
||||
| test.go:42:2:42:21 | ... = ...[1] | qltest-w-subtypes |
|
||||
| test.go:43:2:43:22 | ... = ...[1] | qltest-w-subtypes |
|
||||
| test.go:59:9:59:16 | call to Src1 | qltest |
|
||||
| test.go:102:46:102:53 | call to Src1 | qltest |
|
||||
| test.go:112:35:112:42 | call to Src1 | qltest |
|
||||
| test.go:116:42:116:49 | call to Src1 | qltest |
|
||||
| test.go:159:8:159:15 | call to Src1 | qltest |
|
||||
| test.go:164:9:164:16 | call to Src1 | qltest |
|
||||
| test.go:167:15:167:22 | call to Src1 | qltest |
|
||||
| test.go:171:9:171:16 | call to Src1 | qltest |
|
||||
| test.go:175:9:175:16 | call to Src1 | qltest |
|
||||
| test.go:180:24:180:31 | call to Src1 | qltest |
|
||||
| test.go:183:17:183:24 | call to Src1 | qltest |
|
||||
| test.go:187:24:187:31 | call to Src1 | qltest |
|
||||
| test.go:191:24:191:31 | call to Src1 | qltest |
|
||||
|
||||
@@ -3,32 +3,32 @@ invalidModelRow
|
||||
| test.go:17:23:17:25 | arg | test.go:17:10:17:26 | call to StepArgRes |
|
||||
| test.go:18:27:18:29 | arg | test.go:18:2:18:30 | ... = ...[1] |
|
||||
| test.go:19:15:19:17 | arg | test.go:11:6:11:9 | definition of arg1 |
|
||||
| test.go:20:16:20:18 | arg | test.go:13:6:13:6 | definition of t |
|
||||
| test.go:21:10:21:10 | t | test.go:21:10:21:24 | call to StepQualRes |
|
||||
| test.go:22:2:22:2 | t | test.go:10:6:10:8 | definition of arg |
|
||||
| test.go:23:32:23:34 | arg | test.go:23:10:23:35 | call to StepArgResNoQual |
|
||||
| test.go:60:25:60:27 | src | test.go:60:12:60:28 | call to StepArgRes |
|
||||
| test.go:63:29:63:31 | src | test.go:63:2:63:32 | ... := ...[1] |
|
||||
| test.go:67:15:67:17 | src | test.go:66:6:66:11 | definition of taint3 |
|
||||
| test.go:71:21:71:23 | src | test.go:70:6:70:11 | definition of taint4 |
|
||||
| test.go:74:13:74:25 | type assertion | test.go:74:12:74:40 | call to StepQualRes |
|
||||
| test.go:78:3:78:15 | type assertion | test.go:77:6:77:11 | definition of taint6 |
|
||||
| test.go:81:34:81:36 | src | test.go:81:12:81:37 | call to StepArgResNoQual |
|
||||
| test.go:197:14:197:19 | srcInt | test.go:197:10:197:26 | call to max |
|
||||
| test.go:197:22:197:22 | 0 | test.go:197:10:197:26 | call to max |
|
||||
| test.go:197:25:197:25 | 1 | test.go:197:10:197:26 | call to max |
|
||||
| test.go:198:14:198:14 | 0 | test.go:198:10:198:26 | call to max |
|
||||
| test.go:198:17:198:22 | srcInt | test.go:198:10:198:26 | call to max |
|
||||
| test.go:198:25:198:25 | 1 | test.go:198:10:198:26 | call to max |
|
||||
| test.go:199:14:199:14 | 0 | test.go:199:10:199:26 | call to max |
|
||||
| test.go:199:17:199:17 | 1 | test.go:199:10:199:26 | call to max |
|
||||
| test.go:199:20:199:25 | srcInt | test.go:199:10:199:26 | call to max |
|
||||
| test.go:200:14:200:19 | srcInt | test.go:200:10:200:26 | call to min |
|
||||
| test.go:200:22:200:22 | 0 | test.go:200:10:200:26 | call to min |
|
||||
| test.go:200:25:200:25 | 1 | test.go:200:10:200:26 | call to min |
|
||||
| test.go:201:14:201:14 | 0 | test.go:201:10:201:26 | call to min |
|
||||
| test.go:201:17:201:22 | srcInt | test.go:201:10:201:26 | call to min |
|
||||
| test.go:201:25:201:25 | 1 | test.go:201:10:201:26 | call to min |
|
||||
| test.go:202:14:202:14 | 0 | test.go:202:10:202:26 | call to min |
|
||||
| test.go:202:17:202:17 | 1 | test.go:202:10:202:26 | call to min |
|
||||
| test.go:202:20:202:25 | srcInt | test.go:202:10:202:26 | call to min |
|
||||
| test.go:21:16:21:18 | arg | test.go:13:6:13:6 | definition of t |
|
||||
| test.go:22:10:22:10 | t | test.go:22:10:22:24 | call to StepQualRes |
|
||||
| test.go:23:2:23:2 | t | test.go:10:6:10:8 | definition of arg |
|
||||
| test.go:24:32:24:34 | arg | test.go:24:10:24:35 | call to StepArgResNoQual |
|
||||
| test.go:61:25:61:27 | src | test.go:61:12:61:28 | call to StepArgRes |
|
||||
| test.go:64:29:64:31 | src | test.go:64:2:64:32 | ... := ...[1] |
|
||||
| test.go:68:15:68:17 | src | test.go:67:6:67:11 | definition of taint3 |
|
||||
| test.go:76:21:76:23 | src | test.go:75:6:75:11 | definition of taint4 |
|
||||
| test.go:79:13:79:25 | type assertion | test.go:79:12:79:40 | call to StepQualRes |
|
||||
| test.go:83:3:83:15 | type assertion | test.go:82:6:82:11 | definition of taint6 |
|
||||
| test.go:86:34:86:36 | src | test.go:86:12:86:37 | call to StepArgResNoQual |
|
||||
| test.go:202:14:202:19 | srcInt | test.go:202:10:202:26 | call to max |
|
||||
| test.go:202:22:202:22 | 0 | test.go:202:10:202:26 | call to max |
|
||||
| test.go:202:25:202:25 | 1 | test.go:202:10:202:26 | call to max |
|
||||
| test.go:203:14:203:14 | 0 | test.go:203:10:203:26 | call to max |
|
||||
| test.go:203:17:203:22 | srcInt | test.go:203:10:203:26 | call to max |
|
||||
| test.go:203:25:203:25 | 1 | test.go:203:10:203:26 | call to max |
|
||||
| test.go:204:14:204:14 | 0 | test.go:204:10:204:26 | call to max |
|
||||
| test.go:204:17:204:17 | 1 | test.go:204:10:204:26 | call to max |
|
||||
| test.go:204:20:204:25 | srcInt | test.go:204:10:204:26 | call to max |
|
||||
| test.go:205:14:205:19 | srcInt | test.go:205:10:205:26 | call to min |
|
||||
| test.go:205:22:205:22 | 0 | test.go:205:10:205:26 | call to min |
|
||||
| test.go:205:25:205:25 | 1 | test.go:205:10:205:26 | call to min |
|
||||
| test.go:206:14:206:14 | 0 | test.go:206:10:206:26 | call to min |
|
||||
| test.go:206:17:206:22 | srcInt | test.go:206:10:206:26 | call to min |
|
||||
| test.go:206:25:206:25 | 1 | test.go:206:10:206:26 | call to min |
|
||||
| test.go:207:14:207:14 | 0 | test.go:207:10:207:26 | call to min |
|
||||
| test.go:207:17:207:17 | 1 | test.go:207:10:207:26 | call to min |
|
||||
| test.go:207:20:207:25 | srcInt | test.go:207:10:207:26 | call to min |
|
||||
|
||||
@@ -5,10 +5,16 @@ extensions:
|
||||
data:
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgRes", "", "", "Argument[0]", "ReturnValue", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgRes1", "", "", "Argument[0]", "ReturnValue[1]", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgQual", "", "", "Argument[0]", "Argument[-1]", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepQualRes", "", "", "Argument[-1]", "ReturnValue", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepQualArg", "", "", "Argument[-1]", "Argument[0]", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "value", "df-generated"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgArgIgnored", "", "", "Argument[0]", "Argument[1]", "value", "df-generated"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepArgQual", "", "", "Argument[0]", "Argument[receiver]", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepQualRes", "", "", "Argument[receiver]", "ReturnValue", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "T", False, "StepQualArg", "", "", "Argument[receiver]", "Argument[0]", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "", False, "StepArgResNoQual", "", "", "Argument[0]", "ReturnValue", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "", False, "StepArgResContent", "", "", "Argument[0]", "ReturnValue.ArrayElement", "value", "manual"]
|
||||
- ["github.com/nonexistent/test", "", False, "StepArgContentRes", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"]
|
||||
- addsTo:
|
||||
pack: codeql/go-all
|
||||
extensible: neutralModel
|
||||
data:
|
||||
- ["github.com/nonexistent/test", "T", "StepArgArgIgnored", "", "summary", "manual"]
|
||||
|
||||
@@ -17,6 +17,7 @@ func main() {
|
||||
taint = t.StepArgRes(arg)
|
||||
_, taint = t.StepArgRes1(arg)
|
||||
t.StepArgArg(arg, arg1)
|
||||
t.StepArgArgIgnored(arg, arg1)
|
||||
t.StepArgQual(arg)
|
||||
taint = t.StepQualRes()
|
||||
t.StepQualArg(arg)
|
||||
@@ -67,6 +68,10 @@ func simpleflow() {
|
||||
t.StepArgArg(src, taint3)
|
||||
b.Sink1(taint3) // $ hasValueFlow="taint3"
|
||||
|
||||
var taint3ignored interface{}
|
||||
t.StepArgArgIgnored(src, taint3ignored)
|
||||
b.Sink1(taint3ignored)
|
||||
|
||||
var taint4 test.T
|
||||
taint4.StepArgQual(src)
|
||||
b.Sink1(taint4) // $ hasValueFlow="taint4"
|
||||
|
||||
@@ -8,6 +8,8 @@ func (t *T) StepArgRes1(arg interface{}) (interface{}, interface{}) { return nil
|
||||
|
||||
func (t *T) StepArgArg(a1 interface{}, a2 interface{}) {}
|
||||
|
||||
func (t *T) StepArgArgIgnored(a1 interface{}, a2 interface{}) {}
|
||||
|
||||
func (t *T) StepArgQual(arg interface{}) {}
|
||||
|
||||
func (t *T) StepQualRes() interface{} { return nil }
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
invalidModelRow
|
||||
testFailures
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import go
|
||||
import semmle.go.dataflow.ExternalFlow
|
||||
import ModelValidation
|
||||
import TestUtilities.InlineFlowTest
|
||||
import DefaultFlowTest
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
invalidModelRow
|
||||
testFailures
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import go
|
||||
import semmle.go.dataflow.ExternalFlow
|
||||
import ModelValidation
|
||||
import TestUtilities.InlineFlowTest
|
||||
|
||||
predicate isBad(DataFlow::Node g, Expr e, boolean branch) {
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
invalidModelRow
|
||||
edges
|
||||
| test.go:14:8:14:15 | call to source | test.go:15:34:15:35 | fi | provenance | |
|
||||
| test.go:15:2:15:44 | ... := ...[0] | test.go:16:7:16:12 | header | provenance | |
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import go
|
||||
import semmle.go.dataflow.ExternalFlow
|
||||
import ModelValidation
|
||||
import TestUtilities.InlineFlowTest
|
||||
|
||||
module Flow = TaintTracking::Global<DefaultFlowConfig>;
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
invalidModelRow
|
||||
testFailures
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import go
|
||||
import semmle.go.dataflow.ExternalFlow
|
||||
import ModelValidation
|
||||
import TestUtilities.InlineFlowTest
|
||||
import TaintFlowTest<DefaultFlowConfig>
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
invalidModelRow
|
||||
testFailures
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user