DF-5322 / manifest.json
{ "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" ] } |