Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
4ea4e0d
Go: seperate real and synthetic callables
smowton Mar 28, 2023
a5e5a57
Use FlowSummaryImpl::Private::summaryParameterNodeRange
smowton Mar 28, 2023
51ebc0b
Amend test now that DataFlowCallable != Callable
smowton Mar 28, 2023
de0caf2
Go: mass-convert taint-flow models to models-as-data format
smowton Apr 12, 2023
1b7f529
Restore reverse-flow models
smowton Mar 17, 2023
e98c70c
Restore mistakenly deleted model
smowton Mar 17, 2023
11b457d
Allow - character in Go package names
smowton Mar 17, 2023
d49840e
Restore mistakenly-deleted models
smowton Mar 17, 2023
bfc8db9
Accept test changes
smowton Mar 17, 2023
f36a214
Accept more test changes; add some missing models
smowton Mar 21, 2023
c242c28
Use $ANYVERSION to allow applying a model to all versions of a given …
smowton Mar 23, 2023
9c45192
Remove spurious duplicate models
smowton Mar 23, 2023
5372347
Enable model inheritence by subinterfaces
smowton Mar 23, 2023
2677a94
Autoformat
smowton Mar 23, 2023
2c65e68
Adapt HTTP response body association to MaD models
smowton Mar 23, 2023
16e3acf
Restore old-style taint models for the unsafe package
smowton Mar 23, 2023
c8407ba
Revert variadic functions to use non-MaD models
smowton Mar 23, 2023
a673610
Adapt query not to depend on TaintTracking::FunctionModel
smowton Mar 23, 2023
2e70fad
Bump Go version on test referencing go 1.20 methods
smowton Mar 23, 2023
77b8103
Adapt tests not to depend on TaintTracking::FunctionModel
smowton Mar 23, 2023
a796ddb
Accept paths-only test changes
smowton Mar 23, 2023
7c8db6e
Restore QL modelling for the built-in `append` function.
smowton Mar 23, 2023
c011e01
fixup restoration of variadic models
smowton Mar 23, 2023
c752777
Accept test changes
smowton Mar 23, 2023
0249669
Accept test changes
smowton Mar 23, 2023
9e38e8d
Restore model of builtin `copy` function.
smowton Mar 23, 2023
3c8182b
Format and reorder
smowton Mar 23, 2023
5e74930
Add missing tests and models for go-pg/pg/orm.Formatter
smowton Mar 23, 2023
803b9d3
Add missing tests and models for json-patch
smowton Mar 23, 2023
405a563
Add missing tests for CertStorage
smowton Mar 23, 2023
ed7f351
Add missing tests for mime/multipart.Part
smowton Mar 23, 2023
e671832
Restore query-specific FunctionModels
smowton Mar 23, 2023
8f45673
Add missing NewTokenizerFragment model and test
smowton Mar 23, 2023
2024747
Add missing tests for html.Node taint propagators
smowton Mar 24, 2023
12f35bc
Add missing tests for RevelHeader mutators
smowton Mar 24, 2023
172ff08
Default to tolerating multiple package versions
smowton Mar 24, 2023
fd16c03
Add Beego v2 models
smowton Mar 24, 2023
5e121fb
Restore Couchbase alternate package names
smowton Mar 24, 2023
0d66b68
Restore more package / subpackage boundaries and alternate package names
smowton Mar 24, 2023
95a9fca
Remove spurious model
smowton Mar 24, 2023
a16d562
Clean up protobuf models
smowton Mar 24, 2023
2658a47
Remove another protobuf instance now handled in Protobuf.qll
smowton Mar 24, 2023
0d306e6
Restore versioning to one more protobuf model
smowton Mar 24, 2023
9447dfd
Combine net/http models
smowton Mar 24, 2023
8fb75f4
Consider MaD models ref whether a package should be considered an unk…
smowton Mar 24, 2023
6b9b4c8
Remove binary file
smowton Mar 24, 2023
54d08e1
Autoformat Go
smowton Mar 27, 2023
18d00c1
Autoformat QL
smowton Mar 27, 2023
aaa7f34
Fix mixing of source and summary models
smowton Mar 27, 2023
affe42b
Use US spelling
smowton Mar 27, 2023
952bc84
Use explicit `this`
smowton Mar 27, 2023
477341d
Remove unnecessary variable
smowton Mar 27, 2023
8a06ca5
Allow $ANYVERSION token in Go package names
smowton Mar 27, 2023
141d6b8
Accept paths test changes
smowton Mar 27, 2023
fa4145b
Remove dead code
smowton Mar 28, 2023
1a7927d
Fix x/net/html.EscapeString modelling
smowton Mar 29, 2023
1405052
Update test expectations
smowton Mar 29, 2023
19e8974
Fix comment
smowton Mar 29, 2023
ed56461
Remove unnecessary models
smowton Mar 29, 2023
3c48609
Accept test changes
smowton Mar 29, 2023
ac4dcc6
Add ioutil usage to TaintSteps test
smowton Mar 29, 2023
8c553ec
Autoformat go
smowton Mar 29, 2023
3f6cecc
US spelling
smowton Mar 29, 2023
4a89dbc
Revert "Remove unnecessary models"
smowton Mar 29, 2023
3cea01b
Fix functions with multiple models
smowton Mar 30, 2023
2abffcc
Accept test changes
smowton Mar 30, 2023
12527e4
Remove unnecessary model
smowton Mar 30, 2023
b86f0cf
Sort models
smowton Mar 30, 2023
0129167
Convert Beego's MapGet method to MaD
smowton Mar 30, 2023
985e07d
pragma[nomagic] hasQualifiedName
smowton Mar 31, 2023
7ffe863
Remove addressed FIXME
smowton Mar 31, 2023
4d8ca3d
Add dataflow callback to filter out receiver argument flow to Golang …
smowton Apr 3, 2023
9f4b77e
Accept test changes
smowton Apr 12, 2023
1706367
Document DataFlowCallable
smowton Apr 12, 2023
7eefa43
Rename and document `viableArgParamSpecific` to make clear it is a te…
smowton Apr 12, 2023
d648b34
Accept test changes
smowton Apr 12, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -79,3 +79,13 @@ class ArgumentPosition extends int {
/** Holds if arguments at position `apos` match parameters at position `ppos`. */
pragma[inline]
predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) { ppos = apos }

/**
* Holds if flow from `call`'s argument `arg` to parameter `p` is permissible.
*
* This is a temporary hook to support technical debt in the Go language; do not use.
*/
pragma[inline]
predicate golangSpecificParamArgFilter(DataFlowCall call, ParameterNode p, ArgumentNode arg) {
any()
}
Original file line number Diff line number Diff line change
Expand Up @@ -425,7 +425,8 @@ private module Cached {
exists(ParameterPosition ppos |
viableParam(call, ppos, p) and
argumentPositionMatch(call, arg, ppos) and
compatibleTypes(getNodeDataFlowType(arg), getNodeDataFlowType(p))
compatibleTypes(getNodeDataFlowType(arg), getNodeDataFlowType(p)) and
golangSpecificParamArgFilter(call, p, arg)
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -271,3 +271,13 @@ Function viableImplInCallContext(CallInstruction call, CallInstruction ctx) {
/** Holds if arguments at position `apos` match parameters at position `ppos`. */
pragma[inline]
predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) { ppos = apos }

/**
* Holds if flow from `call`'s argument `arg` to parameter `p` is permissible.
*
* This is a temporary hook to support technical debt in the Go language; do not use.
*/
pragma[inline]
predicate golangSpecificParamArgFilter(DataFlowCall call, ParameterNode p, ArgumentNode arg) {
any()
}
Original file line number Diff line number Diff line change
Expand Up @@ -425,7 +425,8 @@ private module Cached {
exists(ParameterPosition ppos |
viableParam(call, ppos, p) and
argumentPositionMatch(call, arg, ppos) and
compatibleTypes(getNodeDataFlowType(arg), getNodeDataFlowType(p))
compatibleTypes(getNodeDataFlowType(arg), getNodeDataFlowType(p)) and
golangSpecificParamArgFilter(call, p, arg)
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -555,3 +555,13 @@ predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) {
apos.isImplicitCapturedArgumentPosition(v)
)
}

/**
* Holds if flow from `call`'s argument `arg` to parameter `p` is permissible.
*
* This is a temporary hook to support technical debt in the Go language; do not use.
*/
pragma[inline]
predicate golangSpecificParamArgFilter(DataFlowCall call, ParameterNode p, ArgumentNode arg) {
any()
}
Original file line number Diff line number Diff line change
Expand Up @@ -425,7 +425,8 @@ private module Cached {
exists(ParameterPosition ppos |
viableParam(call, ppos, p) and
argumentPositionMatch(call, arg, ppos) and
compatibleTypes(getNodeDataFlowType(arg), getNodeDataFlowType(p))
compatibleTypes(getNodeDataFlowType(arg), getNodeDataFlowType(p)) and
golangSpecificParamArgFilter(call, p, arg)
)
}

Expand Down
10 changes: 10 additions & 0 deletions go/ql/lib/ext/archive.tar.model.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
extensions:
- addsTo:
pack: codeql/go-all
extensible: summaryModel
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"]
11 changes: 11 additions & 0 deletions go/ql/lib/ext/archive.zip.model.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
extensions:
- addsTo:
pack: codeql/go-all
extensible: summaryModel
data:
- ["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"]
6 changes: 0 additions & 6 deletions go/ql/lib/ext/archive_tar.model.yml

This file was deleted.

22 changes: 22 additions & 0 deletions go/ql/lib/ext/bufio.model.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
extensions:
- addsTo:
pack: codeql/go-all
extensible: summaryModel
data:
- ["bufio", "", False, "NewReadWriter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bufio", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bufio", "", False, "NewReaderSize", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bufio", "", False, "NewScanner", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bufio", "", False, "ScanBytes", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"]
- ["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"]
48 changes: 48 additions & 0 deletions go/ql/lib/ext/bytes.model.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
extensions:
- addsTo:
pack: codeql/go-all
extensible: summaryModel
data:
- ["bytes", "", False, "Clone", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "Cut", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"]
- ["bytes", "", False, "CutPrefix", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["bytes", "", False, "CutSuffix", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["bytes", "", False, "Fields", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "FieldsFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "Join", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "Map", "", "", "Argument[1]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "NewBuffer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "NewBufferString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "Repeat", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "Replace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "Replace", "", "", "Argument[2]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "ReplaceAll", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "ReplaceAll", "", "", "Argument[2]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "Runes", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "Split", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "SplitAfter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "SplitAfterN", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "SplitN", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "Title", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "ToLower", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "ToLowerSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "ToTitle", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "ToTitleSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "ToUpper", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "ToUpperSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "ToValidUTF8", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "Trim", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "TrimFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "TrimLeft", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "TrimLeftFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "TrimPrefix", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["bytes", "", False, "TrimRight", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["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"]
6 changes: 6 additions & 0 deletions go/ql/lib/ext/compress.bzip2.model.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
extensions:
- addsTo:
pack: codeql/go-all
extensible: summaryModel
data:
- ["compress/bzip2", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
9 changes: 9 additions & 0 deletions go/ql/lib/ext/compress.flate.model.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
extensions:
- addsTo:
pack: codeql/go-all
extensible: summaryModel
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"]
8 changes: 8 additions & 0 deletions go/ql/lib/ext/compress.gzip.model.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
extensions:
- addsTo:
pack: codeql/go-all
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"]
6 changes: 6 additions & 0 deletions go/ql/lib/ext/compress.lzw.model.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
extensions:
- addsTo:
pack: codeql/go-all
extensible: summaryModel
data:
- ["compress/lzw", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
9 changes: 9 additions & 0 deletions go/ql/lib/ext/compress.zlib.model.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
extensions:
- addsTo:
pack: codeql/go-all
extensible: summaryModel
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"]
10 changes: 10 additions & 0 deletions go/ql/lib/ext/container.heap.model.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
extensions:
- addsTo:
pack: codeql/go-all
extensible: summaryModel
data:
- ["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"]
25 changes: 25 additions & 0 deletions go/ql/lib/ext/container.list.model.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
extensions:
- addsTo:
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", "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]", "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, "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, "PushFront", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["container/list", "List", True, "PushFrontList", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["container/list", "List", True, "Remove", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
10 changes: 10 additions & 0 deletions go/ql/lib/ext/container.ring.model.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
extensions:
- addsTo:
pack: codeql/go-all
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"]
10 changes: 10 additions & 0 deletions go/ql/lib/ext/context.model.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
extensions:
- addsTo:
pack: codeql/go-all
extensible: summaryModel
data:
- ["context", "", False, "WithCancel", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["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"]
8 changes: 8 additions & 0 deletions go/ql/lib/ext/crypto.cipher.model.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
extensions:
- addsTo:
pack: codeql/go-all
extensible: summaryModel
data:
- ["crypto/cipher", "AEAD", True, "Open", "", "", "Argument[2]", "Argument[0]", "taint", "manual"]
- ["crypto/cipher", "AEAD", True, "Open", "", "", "Argument[2]", "ReturnValue[0]", "taint", "manual"]
- ["crypto/cipher", "Block", True, "Decrypt", "", "", "Argument[1]", "Argument[0]", "taint", "manual"]
6 changes: 6 additions & 0 deletions go/ql/lib/ext/crypto.model.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
extensions:
- addsTo:
pack: codeql/go-all
extensible: summaryModel
data:
- ["crypto", "Decrypter", True, "Decrypt", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"]
7 changes: 7 additions & 0 deletions go/ql/lib/ext/crypto.rsa.model.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
extensions:
- addsTo:
pack: codeql/go-all
extensible: summaryModel
data:
- ["crypto/rsa", "", False, "DecryptOAEP", "", "", "Argument[3]", "ReturnValue[0]", "taint", "manual"]
- ["crypto/rsa", "", False, "DecryptPKCS1v15", "", "", "Argument[2]", "ReturnValue[0]", "taint", "manual"]
8 changes: 8 additions & 0 deletions go/ql/lib/ext/crypto.tls.model.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
extensions:
- addsTo:
pack: codeql/go-all
extensible: summaryModel
data:
- ["crypto/tls", "", False, "Client", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["crypto/tls", "", False, "NewListener", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["crypto/tls", "", False, "Server", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
6 changes: 6 additions & 0 deletions go/ql/lib/ext/crypto.x509.model.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
extensions:
- addsTo:
pack: codeql/go-all
extensible: summaryModel
data:
- ["crypto/x509", "", False, "DecryptPEMBlock", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
9 changes: 9 additions & 0 deletions go/ql/lib/ext/database.sql.driver.model.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
extensions:
- addsTo:
pack: codeql/go-all
extensible: summaryModel
data:
- ["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"]
12 changes: 12 additions & 0 deletions go/ql/lib/ext/database.sql.model.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
extensions:
- addsTo:
pack: codeql/go-all
extensible: summaryModel
data:
- ["database/sql", "", False, "Named", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"]
- ["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", "Tx", True, "Prepare", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["database/sql", "Tx", True, "PrepareContext", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"]
Loading