DF-4020 / fix_run.log
DF-4020 fix validation -- FIXED production kernel (DragonFly 6.5-DEVELOPMENT #1: Mon Oct 12 05:11:38 UTC 2026; both twins' fix.diffs applied to /usr/src, make nativekernel, installkernel) driving the FIXED mpr_ioctl_devsw via the same rig, same uid=2 operator, same 0640 node. (In-place log was re-truncated by a subsequent run; lines assembled verbatim from the session transcript.) $ su operator -c '/home/maxx/rig4012/trigger read 0' DF4020 trigger: uid=2 euid=2 gid=5; BAR=0xfffff8008dfe0000 scan [0,0) cmd=0xc00c490a read 0 = 0 <-- in-aperture READ still works $ write 0x100 0x41414141 / read 0x100 write 0x100 = 0x41414141 ok <-- in-aperture WRITE still works read 0x100 = 0x41414141 $ write 0x2000 0xdeadbeef <-- 2x aperture: was OOB-written+read-back on the vulnerable kernel (DF-4020 rig_run.log RUN 1) write 0x2000: errno=22 (Invalid argument) <-- NOW REJECTED before any bus_space access $ read 0x2000 read 0x2000: errno=22 (Invalid argument) $ write 0xfffffffc 0x41414141 <-- max-u32 offset: PANICKED the vulnerable kernel (trap 12 in the write 0xfffffffc: errno=22 (Invalid argument) inline movl; see panic3 note in panic2.txt lineage) Guest: up, healthy (uptime after both twins' runs). Negative control observed during validation: with the rig's fake struct resource initially mis-fabricated (r_start/r_end at the wrong offsets), rman_get_size() computed a wrapped huge size and the fixed kernel STILL performed the OOB write (Fatal trap 12, supervisor write, mpr_ioctl_devsw+0x14dd) -- proving the fixed handler's check path executes and its strength is exactly the resource's true size. After correcting the fabrication to the DWARF-proven r_start@+0x28 / r_end@+0x30 (aperture 0x1000), every out-of-aperture offset is rejected as shown above.