DF-5229 / arith.log
== exhaustive ds in [1, 65536] (full mod-4096 cycle, header fw, N=30) == header path: overrun bytes: min=512 max=512 ; vulnerable sizes: 65472/65536 (99.90%) safe residues (ds%4096): [4089, 4090, 4091, 4092] (expect [4089..4092]: True) == control: headerless path (uvd_v4_2.c:49 +0 / ALIGN(ds+4)) == overrun sizes: 0/65536 (expect 0) == shipping firmware (decoded from in-tree bonaire_uvd.bin.uu) == datasize=232752 (v1.64 fw -> N=30): bo_size=2236416 span=2236928 overrun=512 bytes datasize=232752 (N=10): bo_size=1212416 span=1212928 overrun=512 bytes last window tail = gpu_addr + 0x222200 vs bo end gpu_addr + 0x222000 == N-independence (SESSION*N cancels) == overhang independent of max_handles: True == fix validation: span == bo_size for every ds in [0, 0x2FFFF] == post-fix span == bo_size (header path): True post-fix span <= bo_size (headerless path): True shipping fw post-fix: span=2236416 == bo_size=2236416: True