⬢ DragonFlyBSD Kernel Audit
DF-5322 / manifest.json
← back to finding ↓ download raw
{
  "finding_id": "DF-5322",
  "verdict": "reproduced",
  "impact": "leak",
  "confidence": "certain",
  "reproduce": {
    "build": "sh build.sh   (on the guest, root: builds df5322.ko, compiling the PRODUCTION sys/bus/firewire/firewire.c)",
    "run": "sh run.sh   (kldload; sysctl kern.df5321_mode=0 kern.df5321_iters=5000; kern.df5321_fire=1)",
    "expected": "DF5322: M_FW inuse delta = 5000 objects, memuse delta = 80000 bytes -- one leaked struct tlabel (16 B) per split-transaction timeout; fixed kernel: delta = 0."
  },
  "kernel_refs": [
    "sys/bus/firewire/firewire.c:320",
    "sys/bus/firewire/firewire.c:348",
    "sys/bus/firewire/firewire.c:890",
    "sys/bus/firewire/firewire.c:900",
    "sys/bus/firewire/firewire.c:994",
    "sys/bus/firewire/firewirereg.h:214"
  ],
  "fix_status": "fixed",
  "fix_baseline_reproduced": 1,
  "fix_patched_reproduced": 0,
  "fix_verdict": "fix.diff (shared with DF-5321) kfrees the tlabel unlinked by firewire_xfer_timeout inside the new tlabel_lock region. Baseline: 5000 objects / 80000 bytes leaked over 5000 timeouts. Patched: delta 0/0.",
  "fix_evidence": "fix_run.log, fix_build.log",
  "artifacts": [
    "df5322.c", "Makefile", "build.sh", "run.sh",
    "run.log", "fix.diff", "fix_build.log", "fix_run.log",
    "env.txt", "VERDICT.md", "README.md", "manifest.json", "verdict.json"
  ]
}