@@ -4,16 +4,14 @@ extensions:
44 pack : codeql/cpp-all
55 extensible : summaryModel
66 data : # namespace, type, subtypes, name, signature, ext, input, output, kind, provenance
7- # === bslx::ByteInStream: concrete byte-array in-stream ===
8- # Taint in: the source buffer/streambuf taints the stream (`this`).
9- # Note: MaD taint is additive, so `reset` cannot clear taint from a previously
10- # tainted stream; a stream reset with a clean buffer keeps any earlier taint.
7+ # bslx::ByteInStream
118 - ["BloombergLP::bslx", "ByteInStream", true, "ByteInStream", "", "", "Argument[*0]", "Argument[-1]", "taint", "manual"]
12- - ["BloombergLP::bslx", "ByteInStream", true, "reset", "", "", "Argument[*0]", "Argument[-1]", "taint", "manual"]
13- # Taint out: the stream (`this`) taints the deserialized string/array output buffer.
14- # Scalar getters (getLength, getVersion, getInt*, getUint*, getFloat*) are deliberately
15- # not modeled as outputs: most queries sanitize taint through integers, so such rows
16- # would add nothing. Their fluent `ReturnValue[*]` rows below are still modeled.
9+ # Input-taking resets replace the buffer; reset() only rewinds it.
10+ - ["BloombergLP::bslx", "ByteInStream", true, "reset", "(const char *,size_t)", "", "Argument[*0]", "Argument[-1]", "taint", "manual"]
11+ - ["BloombergLP::bslx", "ByteInStream", true, "reset", "(const StringRef &)", "", "Argument[*0]", "Argument[-1]", "taint", "manual"]
12+ # bslx::ByteInStream getters.
13+ # Scalar getters (getLength, getVersion, getInt*, getUint*, getFloat*) are not modeled,
14+ # as we are generally not interested in tainted scalar values.
1715 - ["BloombergLP::bslx", "ByteInStream", true, "getString", "", "", "Argument[-1]", "Argument[*0]", "taint", "manual"]
1816 - ["BloombergLP::bslx", "ByteInStream", true, "getArrayInt8", "", "", "Argument[-1]", "Argument[*0]", "taint", "manual"]
1917 - ["BloombergLP::bslx", "ByteInStream", true, "getArrayUint8", "", "", "Argument[-1]", "Argument[*0]", "taint", "manual"]
@@ -33,7 +31,7 @@ extensions:
3331 - ["BloombergLP::bslx", "ByteInStream", true, "getArrayUint64", "", "", "Argument[-1]", "Argument[*0]", "taint", "manual"]
3432 - ["BloombergLP::bslx", "ByteInStream", true, "getArrayFloat32", "", "", "Argument[-1]", "Argument[*0]", "taint", "manual"]
3533 - ["BloombergLP::bslx", "ByteInStream", true, "getArrayFloat64", "", "", "Argument[-1]", "Argument[*0]", "taint", "manual"]
36- # Fluent interface: each get* returns `*this`, keeping the returned stream tainted.
34+ # bslx::ByteInStream fluent interface
3735 - ["BloombergLP::bslx", "ByteInStream", true, "getLength", "", "", "Argument[-1]", "ReturnValue[*]", "taint", "manual"]
3836 - ["BloombergLP::bslx", "ByteInStream", true, "getVersion", "", "", "Argument[-1]", "ReturnValue[*]", "taint", "manual"]
3937 - ["BloombergLP::bslx", "ByteInStream", true, "getInt8", "", "", "Argument[-1]", "ReturnValue[*]", "taint", "manual"]
@@ -73,13 +71,11 @@ extensions:
7371 - ["BloombergLP::bslx", "ByteInStream", true, "getArrayUint64", "", "", "Argument[-1]", "ReturnValue[*]", "taint", "manual"]
7472 - ["BloombergLP::bslx", "ByteInStream", true, "getArrayFloat32", "", "", "Argument[-1]", "ReturnValue[*]", "taint", "manual"]
7573 - ["BloombergLP::bslx", "ByteInStream", true, "getArrayFloat64", "", "", "Argument[-1]", "ReturnValue[*]", "taint", "manual"]
76- # === bslx::GenericInStream<STREAMBUF>: streambuf-backed in-stream ===
77- # Taint in: the source buffer/streambuf taints the stream (`this`).
74+ # bslx::GenericInStream
7875 - ["BloombergLP::bslx", "GenericInStream", true, "GenericInStream", "", "", "Argument[*0]", "Argument[-1]", "taint", "manual"]
79- # Taint out: the stream (`this`) taints the deserialized string/array output buffer.
80- # Scalar getters (getLength, getVersion, getInt*, getUint*, getFloat*) are deliberately
81- # not modeled as outputs: most queries sanitize taint through integers, so such rows
82- # would add nothing. Their fluent `ReturnValue[*]` rows below are still modeled.
76+ # bslx::GenericInStream getters.
77+ # Scalar getters (getLength, getVersion, getInt*, getUint*, getFloat*) are not modeled,
78+ # as we are generally not interested in tainted scalar values.
8379 - ["BloombergLP::bslx", "GenericInStream", true, "getString", "", "", "Argument[-1]", "Argument[*0]", "taint", "manual"]
8480 - ["BloombergLP::bslx", "GenericInStream", true, "getArrayInt8", "", "", "Argument[-1]", "Argument[*0]", "taint", "manual"]
8581 - ["BloombergLP::bslx", "GenericInStream", true, "getArrayUint8", "", "", "Argument[-1]", "Argument[*0]", "taint", "manual"]
@@ -99,7 +95,7 @@ extensions:
9995 - ["BloombergLP::bslx", "GenericInStream", true, "getArrayUint64", "", "", "Argument[-1]", "Argument[*0]", "taint", "manual"]
10096 - ["BloombergLP::bslx", "GenericInStream", true, "getArrayFloat32", "", "", "Argument[-1]", "Argument[*0]", "taint", "manual"]
10197 - ["BloombergLP::bslx", "GenericInStream", true, "getArrayFloat64", "", "", "Argument[-1]", "Argument[*0]", "taint", "manual"]
102- # Fluent interface: each get* returns `*this`, keeping the returned stream tainted.
98+ # bslx::GenericInStream fluent interface
10399 - ["BloombergLP::bslx", "GenericInStream", true, "getLength", "", "", "Argument[-1]", "ReturnValue[*]", "taint", "manual"]
104100 - ["BloombergLP::bslx", "GenericInStream", true, "getVersion", "", "", "Argument[-1]", "ReturnValue[*]", "taint", "manual"]
105101 - ["BloombergLP::bslx", "GenericInStream", true, "getInt8", "", "", "Argument[-1]", "ReturnValue[*]", "taint", "manual"]
@@ -139,8 +135,6 @@ extensions:
139135 - ["BloombergLP::bslx", "GenericInStream", true, "getArrayUint64", "", "", "Argument[-1]", "ReturnValue[*]", "taint", "manual"]
140136 - ["BloombergLP::bslx", "GenericInStream", true, "getArrayFloat32", "", "", "Argument[-1]", "ReturnValue[*]", "taint", "manual"]
141137 - ["BloombergLP::bslx", "GenericInStream", true, "getArrayFloat64", "", "", "Argument[-1]", "ReturnValue[*]", "taint", "manual"]
142- # === bslx::InStreamFunctions::bdexStreamIn: generic BDEX deserialization ===
143- # Free function template; `InStreamFunctions` is a namespace, so `type` is empty.
144- # Object outputs are modeled in implementations/Bslx.qll, where their type
145- # can be checked to exclude scalar outputs.
138+ # bslx::InStreamFunctions::bdexStreamIn
139+ - ["BloombergLP::bslx::InStreamFunctions", "", false, "bdexStreamIn", "", "", "Argument[*0]", "Argument[*1]", "taint", "manual"]
146140 - ["BloombergLP::bslx::InStreamFunctions", "", false, "bdexStreamIn", "", "", "Argument[*0]", "ReturnValue[*]", "taint", "manual"]
0 commit comments