DF-1136 / run.log
MAX_VOLTAGE_ENTRIES = 32 sizeof(atom_voltage_table entries[]) = 256 offset of entries[32] (first OOB) = 268 offset of following canary = 272 VBIOS count=8 entries written in-bounds=8 OOB writes past entries[32]=0 VBIOS count=32 entries written in-bounds=32 OOB writes past entries[32]=0 VBIOS count=33 entries written in-bounds=32 OOB writes past entries[32]=1 >>> HEAP OOB WRITE into evergreen_power_info VBIOS count=48 entries written in-bounds=32 OOB writes past entries[32]=16 >>> HEAP OOB WRITE into evergreen_power_info VBIOS count=64 entries written in-bounds=32 OOB writes past entries[32]=32 >>> HEAP OOB WRITE into evergreen_power_info VBIOS count=255 entries written in-bounds=32 OOB writes past entries[32]=223 >>> HEAP OOB WRITE into evergreen_power_info concrete model (count=48, unchecked writes): entries[32..47] wrote 128 bytes past entries[] into adjacent struct memory -> in-kernel these bytes overwrite evergreen_power_info.cac_weights / powertune pointers -> corruption during si_dpm_enable DF-1136: CONFIRMED heap OOB write past entries[32] (VBIOS count unbounded) --- WITH FIX (clamp count to MAX_VOLTAGE_ENTRIES=32) --- VBIOS count=8 -> clamped count=8 OOB writes past entries[32]=0 (in bounds) VBIOS count=32 -> clamped count=32 OOB writes past entries[32]=0 (in bounds) VBIOS count=33 -> clamped count=32 OOB writes past entries[32]=0 (in bounds) VBIOS count=48 -> clamped count=32 OOB writes past entries[32]=0 (in bounds) VBIOS count=64 -> clamped count=32 OOB writes past entries[32]=0 (in bounds) VBIOS count=255 -> clamped count=32 OOB writes past entries[32]=0 (in bounds) FIX result: 0 OOB cases remain (expect 0) DF-1136 FIX: VALIDATED - clamp prevents all overflows past entries[32] RUN=0