⬢ DragonFlyBSD Kernel Audit
DF-5019 / run.log
← back to finding ↓ download raw
DF-5019 — decisive baseline run (tbridge compiled into the kernel)

Guest: DragonFly 6.5-DEVELOPMENT, custom kernel "DF5019" = X86_64_GENERIC
+ "device tbridge" (dfregress-style), built 2026-09-26 03:54 UTC, INVARIANTS
in effect (stock X86_64_GENERIC ships options INVARIANTS, sys/config/
X86_64_GENERIC:56). /dev/tbridge appears at boot: crw------- root:wheel.

Commands (as root):
  # kldload ./mytcase.ko          # registers tbridge_curtest (tb_run calls
  #                               #  tbridge_test_done(RESULT_PASS))
  # ./poc                         # ioctl(TBRIDGE_GETRESULT) with NO prior
  #                               #  TBRIDGE_LOADTEST

The ssh session died with the panic (run command timed out); serial console:

  login: panic: assertion "tbridge_testcase != NULL" failed in tbridge_test_done at /usr/src/sys/dev/misc/tbridge/tbridge.c:196
  cpuid = 5
  Trace beginning at frame 0xfffff801183aba80
  tbridge_test_done() at tbridge_test_done+0xe9 0xffffffff809d2309 
  tbridge_test_done() at tbridge_test_done+0xe9 0xffffffff809d2309 
  Debugger("panic")

  CPU5 stopping CPUs: 0x0000001f
   stopped
  Stopped at      Debugger+0x7c:  movb    $0,0xbfa639(%rip)
  db> 

Guest wedged in DDB; single-shot deterministic panic (no race required).

Contrast run (tbridge as kldload'able kmod on the stock GENERIC kernel,
run.kmod.log): no panic — out-of-tree kmods compile without INVARIANTS, so
the KKASSERT is a no-op and the walk degrades to copyout ENOTSUP (errno 45).