⬢ DragonFlyBSD Kernel Audit
DF-5632 / manifest.json
← back to finding ↓ download raw
{
  "finding_id": "DF-5632",
  "verdict": "reproduced",
  "impact": "panic",
  "reproduce": {
    "build": "cd /root/df5632 && sh build.sh",
    "run": "stock triggers: (1) kldload /boot/kernel/iicbus.ko; kldload /boot/kernel/iicbb.ko; kldload build_reg iicbb_reg.ko; kldload build_rig df5632_rig.ko with hw.df5632.identify_add=1 -> Fatal trap 12 at devclass_add_device+0xf6 during kldload; (2) with the rig loaded clean, ./dfctl addchild -> same trap. Fixed: run_d_fixed.sh -> BUS_ADD_CHILD returns real device_t, no panic.",
    "expected": "stock: 'Fatal trap 12: page fault while in kernel mode', 'supervisor write data, page not present', fault VA 0xfffffffc13...., 'Stopped at devclass_add_device+0xf6: movq %r14,(%rdx,%rax,1)'; fixed: 'dfctl addchild: kernel rc=0 v0=0xfffff801175bc9c0' and 'child[3] devclass=df5632c unit=0'"
  },
  "kernel_refs": [
    "sys/bus/iicbus/iicbus.c:57",
    "sys/bus/iicbus/iicbus.c:66",
    "sys/bus/iicbus/iicbus.c:164-171",
    "sys/kern/bus_if.m:128-134",
    "sys/kern/subr_bus.c:devclass_add_device",
    "sys/bus/iicbus/iic.c:104-110",
    "sys/bus/iicbus/iicsmb.c:137-142"
  ],
  "artifacts": [
    "df5632_rig.c", "dfctl.c", "iicbb_reg.c", "Makefile.rig", "Makefile.reg",
    "build.sh", "run_a_stock.sh", "run_b_5559.sh", "run_c_panic.sh",
    "run_d_fixed.sh", "build.log", "run_a2.log", "run_a2_dmesg.txt",
    "run_b_5559.log", "run_c_panic_driver.log", "run_d_fixed.log",
    "run_d_fixed_dmesg.txt", "panic_skew_stock.txt", "panic_skew_addchild.txt",
    "panic_5635_stock.txt", "fix.diff", "iicbus.c.fixed", "env.txt",
    "README.md", "VERDICT.md", "manifest.json", "verdict.json"
  ]
}