{
  "finding_id": "DF-5843",
  "title": "hammer2_xop_inode_chain_sync KKASSERT(0) panic on non-DATA child during file truncation (crafted image)",
  "verdict": "reproduced",
  "impact": "panic",
  "reproduce": {
    "build": "sh build.sh  (guest, as root; needs /usr/src with hammer2 xxhash + libkern icrc32)",
    "run": "sh run.sh",
    "expected": "baseline kernel: 'panic: assertion \"0\" failed in hammer2_xop_inode_chain_sync at /usr/src/sys/vfs/hammer2/hammer2_xops.c:1582' -> db>, guest dead; fix.diff-patched kernel: trig prints 'SURVIVED: no panic', guest stays up"
  },
  "kernel_refs": [
    "sys/vfs/hammer2/hammer2_xops.c:1575-1594",
    "sys/vfs/hammer2/hammer2_xops.c:1582",
    "sys/vfs/hammer2/hammer2_chain.c:2482-2511",
    "sys/vfs/hammer2/hammer2_vnops.c:1252-1271",
    "sys/vfs/hammer2/hammer2_inode.c:1695-1735"
  ],
  "artifacts": [
    "mkbadimg.c", "trig.c", "build.sh", "run.sh",
    "build.log", "run.log", "panic.txt", "env.txt",
    "fix.diff", "fix_build.log", "fix_run.log",
    "README.md", "VERDICT.md", "manifest.json", "verdict.json"
  ]
}
