Vixen
02b45cc4
csharp
public sealed class DeltaCodecTarget

The delta codec's decoder, on its own.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

Underneath the snapshot applier and worth reaching directly, because ReplicationClient only lets a difference through once it has found a baseline of exactly the right length — so fuzzing through it tests the lookup far more than the arithmetic. Here the baseline is always there and always right, and every byte of the input is the difference.

What the codec has to survive is a selector naming a width, an offset that overflows the lane it belongs to, and a difference that claims more bits than were sent. It writes into a caller's buffer, so the failure mode if it got that wrong is not an exception — it is writing past a lane and corrupting the value next to it, which nothing would report. The signature includes the rebuilt bit count for that reason.

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 (4)

  • public DeltaCodecTarget()

    Creates the target and encodes the capture every difference is measured from.

  • 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