Skip to content

Commit 77a4275

Browse files
committed
cpp: model BDE bslx in-stream deserialization taint flow
Add flow summaries for the BDE byte-stream deserializers in BloombergLP::bslx: - ByteInStream and GenericInStream<STREAMBUF>: constructing (or, for ByteInStream, reset-ing) from a buffer/streambuf taints the stream, and every get* method propagates that taint into its output variable. get* returns *this, so a fluent row keeps chained calls tainted. - InStreamFunctions::bdexStreamIn: the generic BDEX entry point that populates any bdex-compatible object from a stream, modeled as stream -> object. Not a duplicate of the bsl.* container models or the std/bsl QL models, which cover only the bsl standard-library-alike types; the bslx BDE namespace had no coverage. Verified with a BloombergLP::bslx-shaped stub in the dataflow external-models harness.
1 parent b756a08 commit 77a4275

5 files changed

Lines changed: 656 additions & 2 deletions

File tree

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
category: minorAnalysis
3+
---
4+
* Added flow summaries for the BDE `bslx` byte-stream deserializers (`BloombergLP::bslx`). Constructing a `ByteInStream` or `GenericInStream` from a byte buffer or streambuf taints the stream, each `get*` method (`getInt32`, `getString`, `getArray*`, ...) propagates that taint into the deserialized output (and keeps the returned stream tainted for chained calls), and `InStreamFunctions::bdexStreamIn` propagates taint from the stream to any deserialized object.

0 commit comments

Comments
 (0)