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

+13
-29
lines changed

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)