public sealed class BitReaderTargetThe bit reader, driven the same way.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
Same shape as PacketReaderTarget and for the same reason, over the reader that everything above the session actually uses: snapshots, remote-call arguments and sync lists are all bit-packed, so this is the reader on the hot untrusted path.
Two arguments are clamped rather than fuzzed, and that is not a gap. TryRead throws outside 1–32 bits and Rewind throws past where the reader has been, and both are documented to. Those are contracts with the caller — the decoder, which is our code — not with the packet, and a fuzzer that reported them would be reporting that a method does what its own documentation says. What is under test is what the packet can do, and a packet cannot choose either number.
Fields and properties (2)
public string NameWhat to call it on a command line and in a report.
public string WhatWhich receive path this is, in one line.
Methods (3)
public long AllowanceFor(int inputLength)How many bytes an input may cause to be allocated.
public void Seed(ICollection<byte[]> corpus)Adds well-formed inputs for the mutator to start from.
public long Run(ReadOnlySpan<byte> input)Pushes one input through the decoder.
Used by (1)
- FuzzTargetsVixen.Net.Fuzz