⬢ DragonFlyBSD Kernel Audit
DF-3613 / run.log
← back to finding ↓ download raw
== DF-3613 harness: crafted VBIOS FirmwareInfo with usCoreReferenceClock/usMemoryReferenceClock == 0 ==

radeon_atombios.c:1189/1216: reference_freq = le16(vbios)  [no zero fallback]

[A1] si_dpm.c:4811 do_div(tmp, spll.reference_freq==0)
    child died from SIGFPE (signal 4): 64-bit divide by zero
    >>> In kernel: do_div by 0 -> #DE fault -> panic on first level
        upload during si_dpm_enable <<<

[A2] si_dpm.c:4927 freq_nom / (mpll.reference_freq==0)
    child died from SIGFPE (signal 4): 64-bit divide by zero
    >>> In kernel: do_div by 0 -> #DE fault -> panic on first level
        upload during si_dpm_enable <<<

[B] Fixed path (fix.diff: `if (reference_clock == 0) return -EINVAL;`)
    ref=0  -> rc=-1 (level upload refused, no trap)
    ref=27000 -> rc=0, fbdiv=114081 (normal programming)
RUN_RC=0