⬢ DragonFlyBSD Kernel Audit
DF-3115 / compile_validation.txt
← back to finding ↓ download raw
Combined-fix kernel compile validation (Phase V)
================================================
Guest: DragonFly 6.5-DEVELOPMENT, /usr/src = with-src snapshot + all 30
non-dirfs fixes from this batch applied (findings/poc/apply_fixes.py edits,
mirrored by the per-finding fix.diff files).

Build 1: make -j6 nativekernel KERNCONF=X86_64_GENERIC
  result: EXIT=0 after two iterations:
    - hammer_ioctl.c: DF-3113 insertion initially hit the identical
      init-cursor idiom in hammer_ioc_gethistory (regex anchored on the
      snapshot_lock/again: context fixed it to exactly the two handlers)
    - ip_fw2.c: DF-3262 used memchr() which does not exist in the kernel
      environment under -Werror (replaced with an explicit byte loop)
  kernel.stripped #2 built Sun Oct 25 13:23:33 UTC 2026, installed and
  booted (uname: DragonFly 6.5-DEVELOPMENT #2).

Build 2 (+DF-3109 caller propagation in hammer_get_inode): EXIT=0
  kernel #3 Sun Oct 25 14:17:11, booted.

Build 3 (+DF-3254 corrected goto targets: cursor1 zone check must unwind
  via done_cursor because cursor2 is uninitialized at that point): EXIT=0
  kernel #4 Sun Oct 25 14:42:38, booted; the final installed kernel
  md5 = 0540c0bd5e5e4a4e85cade2182238e77.

Every file touched by the 30 fixes compiled into the kernel (msdosfs x4,
cd9660 x2, hammer x7, hpfs, udf, autofs, nfs x3, ufs, ext2, ipfw, pf x2,
zlib). The two dirfs findings (DF-3135, DF-3219) are dead code in this
tree (no Makefile, absent from sys/conf/files) and cannot be compiled.

Note: the raw make logs lived in guest /tmp (tmpfs) and were lost at the
validation reboots; the EXIT=0 outcomes and kernel stamps above were
captured live in the session transcript and are backed by the booted
kernels themselves (build stamps in uname -v) and the A/B logs
(DF-3109/DF-3254 ab_fixed.log).