⬢ DragonFlyBSD Kernel Audit
DF-5550 / fix_run.log
← back to finding ↓ download raw
[CAMQTEST] T3: canary 63 (0xfffff8008d942820) CORRUPTED at +0: d0 (was a5)
[CAMQTEST] T3: 1 CANARY(IES) OVERWRITTEN -> heap OOB WRITE proven
[CAMQTEST] unloaded
[CAMQTEST] loaded (production camq_* primitives)
[CAMQTEST] T1 before resize: entries=4 array_size=4
[CAMQTEST] T1 calling camq_resize(&q, 3) with entries=4 (xpt_remove_periph shape)...
[CAMQTEST] T1 after resize: entries=4 array_size=4 (INVARIANT VIOLATED: entries > array_size; no panic, no DIAGNOSTIC guard on stock kernel)
[CAMQTEST] T1 OOB READ via CAMQ_GET_HEAD path: queue_array[4]=0xfffff8004f0a2ac0 (past 4-ptr array)
[CAMQTEST] T1 remove head -> 0xfffff8004f0a2a90 (entries now 3)
[CAMQTEST] T1 remove head -> 0xfffff8004f0a2aa0 (entries now 2)
[CAMQTEST] T1 remove head -> 0xfffff8004f0a2ab0 (entries now 1)
[CAMQTEST] T1 remove head -> 0xfffff8004f0a2ac0 (entries now 0)
[CAMQTEST] T1 done (no panic: corruption is silent)
[CAMQTEST] T2 before: entries=6 array_size=6
[CAMQTEST] T2 camq_resize(&q, 4) with entries=6: bcopy(6*8=48) into 4*8=32 buffer
[CAMQTEST] T2 after: entries=6 array_size=6
[CAMQTEST] T2: all 64 canaries intact
[CAMQTEST] T3 inserting 5th entry into 4-capacity queue (guard is DIAGNOSTIC-only)...
[CAMQTEST] T3 after: entries=4 array_size=4 (wrote queue_array[4] == 0xfffff8004f0a2ab0 PAST the array)
[CAMQTEST] T3: all 64 canaries intact