DF-1138 / run.log
### build
BUILD_RC=0
### run
=== DF-1138 harness: crafted VBIOS with vce_state.clk_idx=0x3f ===
clock_info_array: ucNumEntries=5 ucEntrySize=16 (in-bounds=0..80)
[A] Main-loop guard (si_dpm.c:6866) on same clk_idx:
buggy code path returns -1 (out-of-range rejected)
rc=-1 (guarded)
[B] VCE-loop WITHOUT guard (si_dpm.c:6885-6887) -- the bug:
read byte=0xab at offset clockInfo[1008] (=1008 bytes into clockInfo)
>>> In kernel: OOB read of BIOS mapping by 928 bytes (0x3f0 - 0x50 = 928) <<<
>>> Real-world: a malicious VBIOS can read up to 0x3f * 16 = 1008 bytes OOB <<<
[C] VCE-loop WITH fix.diff guard:
rc=-1 (rejected, no OOB read)
RUN_RC=0