# DF-4917 — vf2pf checksum computed with `pf2vf_size` instead of `sizeof(amdgim_vf2pf_info)`: OOB read past the 1 KB vf2pf struct + broken protocol checksum

## Build / Run / Expected

Same hardware preconditions as DF-4916 (SR-IOV VF AMD GPU guest, host-fed
pf2vf message). On real hardware:

1. Host writes a pf2vf message with `size = 4095` and a valid checksum.
2. Guest `kldload amdgpu` → `amdgpu_virt_init_data_exchange()` zeroes
   `p_vf2pf` (1 KB), fills header/driver_version/driver_cert, then computes
   the **vf2pf** checksum over **`pf2vf_size` (4095) bytes starting at
   `p_vf2pf`** (`amdgpu_virt.c:435-439`) instead of over the 1 KB struct.
3. Expected: the byte-sum loop (`amdgpu_virt.c:383-384`) walks ~3 KB past
   the end of `amdgim_vf2pf_info` — past the end of the exchange area and,
   with a tight reservation, past the kmap (OOB read of device memory); and
   the checksum the host receives covers the wrong byte range, so a
   spec-conformant PF/GIM rejects the vf2pf message (telemetry/features
   exchange silently broken even on benign hosts).

**Success criterion:** `dmesg`-visible GIM-side checksum mismatch, or OOB
read fault with a tight reservation.

## Files in this pack

- `VERDICT.md` — narrative + upstream comparison.
- `trigger.md` — host-side setup.
- `env.txt` — guest hardware inventory (no AMD GPU present).
- `manifest.json`, `verdict.json` — machine records.
