Vixen
02b45cc4
csharp
public sealed class BitReaderTarget

The 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 Name

    What to call it on a command line and in a report.

  • public string What

    Which 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