Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3cea01b

Browse files
committed
Fix functions with multiple models
In some cases multiple return value outputs can be coalesced, and in others we had accidentally conflated two independent flows (e.g. Arg1 -> Arg2 | Arg3 -> Arg4 led to accidentally introducing Arg1 -> Arg4 and Arg3 -> Arg2)
1 parent 4a89dbc commit 3cea01b

11 files changed

Lines changed: 13 additions & 29 deletions

go/ql/lib/ext/bufio.model.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ extensions:
33
pack: codeql/go-all
44
extensible: summaryModel
55
data:
6-
- ["bufio", "", False, "NewReadWriter", "", "", "Argument[0]", "Argument[1]", "taint", "manual"]
76
- ["bufio", "", False, "NewReadWriter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
87
- ["bufio", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
98
- ["bufio", "", False, "NewReaderSize", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]

go/ql/lib/ext/bytes.model.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ extensions:
44
extensible: summaryModel
55
data:
66
- ["bytes", "", False, "Clone", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
7-
- ["bytes", "", False, "Cut", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
8-
- ["bytes", "", False, "Cut", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"]
7+
- ["bytes", "", False, "Cut", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"]
98
- ["bytes", "", False, "CutPrefix", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
109
- ["bytes", "", False, "CutSuffix", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
1110
- ["bytes", "", False, "Fields", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]

go/ql/lib/ext/encoding.pem.model.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ extensions:
33
pack: codeql/go-all
44
extensible: summaryModel
55
data:
6-
- ["encoding/pem", "", False, "Decode", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
7-
- ["encoding/pem", "", False, "Decode", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"]
6+
- ["encoding/pem", "", False, "Decode", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"]
87
- ["encoding/pem", "", False, "Encode", "", "", "Argument[1]", "Argument[0]", "taint", "manual"]
98
- ["encoding/pem", "", False, "EncodeToMemory", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]

go/ql/lib/ext/mime.model.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ extensions:
44
extensible: summaryModel
55
data:
66
- ["mime", "", False, "FormatMediaType", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"]
7-
- ["mime", "", False, "ParseMediaType", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
8-
- ["mime", "", False, "ParseMediaType", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"]
7+
- ["mime", "", False, "ParseMediaType", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"]
98
- ["mime", "WordDecoder", True, "Decode", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
109
- ["mime", "WordDecoder", True, "DecodeHeader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
1110
- ["mime", "WordEncoder", True, "Encode", "", "", "Argument[1]", "ReturnValue", "taint", "manual"]

go/ql/lib/ext/net.http.httputil.model.yml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,9 @@ extensions:
77
- ["net/http/httputil", "", False, "DumpRequestOut", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
88
- ["net/http/httputil", "", False, "DumpResponse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
99
- ["net/http/httputil", "", False, "NewChunkedReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
10-
- ["net/http/httputil", "", False, "NewClientConn", "", "", "Argument[0..1]", "Argument[0]", "taint", "manual"]
1110
- ["net/http/httputil", "", False, "NewClientConn", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"]
12-
- ["net/http/httputil", "", False, "NewProxyClientConn", "", "", "Argument[0..1]", "Argument[0]", "taint", "manual"]
1311
- ["net/http/httputil", "", False, "NewProxyClientConn", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"]
1412
- ["net/http/httputil", "BufferPool", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
1513
- ["net/http/httputil", "BufferPool", True, "Put", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
16-
- ["net/http/httputil", "ClientConn", True, "Hijack", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
17-
- ["net/http/httputil", "ClientConn", True, "Hijack", "", "", "Argument[-1]", "ReturnValue[1]", "taint", "manual"]
18-
- ["net/http/httputil", "ServerConn", True, "Hijack", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
19-
- ["net/http/httputil", "ServerConn", True, "Hijack", "", "", "Argument[-1]", "ReturnValue[1]", "taint", "manual"]
14+
- ["net/http/httputil", "ClientConn", True, "Hijack", "", "", "Argument[-1]", "ReturnValue[0..1]", "taint", "manual"]
15+
- ["net/http/httputil", "ServerConn", True, "Hijack", "", "", "Argument[-1]", "ReturnValue[0..1]", "taint", "manual"]

go/ql/lib/ext/net.http.model.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ extensions:
1818
- ["net/http", "Header", True, "Values", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
1919
- ["net/http", "Header", True, "Write", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
2020
- ["net/http", "Header", True, "WriteSubset", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
21-
- ["net/http", "Hijacker", True, "Hijack", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
22-
- ["net/http", "Hijacker", True, "Hijack", "", "", "Argument[-1]", "ReturnValue[1]", "taint", "manual"]
21+
- ["net/http", "Hijacker", True, "Hijack", "", "", "Argument[-1]", "ReturnValue[0..1]", "taint", "manual"]
2322
- ["net/http", "Request", True, "AddCookie", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
2423
- ["net/http", "Request", True, "Clone", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
2524
- ["net/http", "Request", True, "Write", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]

go/ql/lib/ext/net.model.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ extensions:
66
- ["net", "", False, "FileConn", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
77
- ["net", "", False, "FilePacketConn", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
88
- ["net", "", False, "JoinHostPort", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"]
9-
- ["net", "", False, "SplitHostPort", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
10-
- ["net", "", False, "SplitHostPort", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"]
9+
- ["net", "", False, "SplitHostPort", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"]
1110
- ["net", "IPConn", True, "ReadFromIP", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
1211
- ["net", "IPConn", True, "ReadMsgIP", "", "", "Argument[-1]", "Argument[0..1]", "taint", "manual"]
1312
- ["net", "IPConn", True, "WriteMsgIP", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]

go/ql/lib/ext/path.filepath.model.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ extensions:
1212
- ["path/filepath", "", False, "FromSlash", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
1313
- ["path/filepath", "", False, "Glob", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
1414
- ["path/filepath", "", False, "Rel", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"]
15-
- ["path/filepath", "", False, "Split", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
16-
- ["path/filepath", "", False, "Split", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"]
15+
- ["path/filepath", "", False, "Split", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"]
1716
- ["path/filepath", "", False, "SplitList", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
1817
- ["path/filepath", "", False, "ToSlash", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
1918
- ["path/filepath", "", False, "VolumeName", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]

go/ql/lib/ext/path.model.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,4 @@ extensions:
77
- ["path", "", False, "Clean", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
88
- ["path", "", False, "Dir", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
99
- ["path", "", False, "Ext", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
10-
- ["path", "", False, "Split", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
11-
- ["path", "", False, "Split", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"]
10+
- ["path", "", False, "Split", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"]

go/ql/lib/ext/sync.atomic.model.yml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,19 @@ extensions:
1111
- ["sync/atomic", "", False, "LoadUintptr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
1212
- ["sync/atomic", "", False, "StorePointer", "", "", "Argument[1]", "Argument[0]", "taint", "manual"]
1313
- ["sync/atomic", "", False, "StoreUintptr", "", "", "Argument[1]", "Argument[0]", "taint", "manual"]
14-
- ["sync/atomic", "", False, "SwapPointer", "", "", "Argument[0..1]", "Argument[0]", "taint", "manual"]
15-
- ["sync/atomic", "", False, "SwapPointer", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"]
16-
- ["sync/atomic", "", False, "SwapUintptr", "", "", "Argument[0..1]", "Argument[0]", "taint", "manual"]
17-
- ["sync/atomic", "", False, "SwapUintptr", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"]
14+
- ["sync/atomic", "", False, "SwapPointer", "", "", "Argument[1]", "Argument[0]", "taint", "manual"]
15+
- ["sync/atomic", "", False, "SwapPointer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
16+
- ["sync/atomic", "", False, "SwapUintptr", "", "", "Argument[1]", "Argument[0]", "taint", "manual"]
17+
- ["sync/atomic", "", False, "SwapUintptr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
1818
- ["sync/atomic", "Pointer", True, "Load", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
1919
- ["sync/atomic", "Pointer", True, "Store", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
2020
- ["sync/atomic", "Pointer", True, "Swap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
2121
- ["sync/atomic", "Pointer", True, "Swap", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
22-
- ["sync/atomic", "Pointer", True, "Swap", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
2322
- ["sync/atomic", "Uintptr", True, "Load", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
2423
- ["sync/atomic", "Uintptr", True, "Store", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
2524
- ["sync/atomic", "Uintptr", True, "Swap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
2625
- ["sync/atomic", "Uintptr", True, "Swap", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
27-
- ["sync/atomic", "Uintptr", True, "Swap", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
2826
- ["sync/atomic", "Value", True, "Load", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
2927
- ["sync/atomic", "Value", True, "Store", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
3028
- ["sync/atomic", "Value", True, "Swap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
3129
- ["sync/atomic", "Value", True, "Swap", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
32-
- ["sync/atomic", "Value", True, "Swap", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]

0 commit comments

Comments
 (0)