DF-2666 / manifest.json
{ "finding_id": "DF-2666", "title": "HAMMER2IOC_RECLUSTER leaks the holdfp() file reference on both error returns in hammer2_ioctl_recluster()", "verdict": "not_reproduced", "impact": "none", "reproduce": { "build": "scp -F dfbsd-qemu/config findings/poc/DF-2666/{df2666_trigger.c,run_df2666.sh} dfbsd:/root/poc/df2666/ && dfbsd-qemu/vm.sh run_root 'sh /root/poc/df2666/run_df2666.sh' (guest cc -O -I/usr/src/sys)", "run": "dfbsd-qemu/vm.sh run_root 'sh /root/poc/df2666/run_df2666.sh'", "expected": "On a kernel where the EINVAL/VFS_ROOT-error branch is enterable: RECLUSTER_EINVAL>0 and kern.openfiles DELTA == RECLUSTER_EINVAL (one leaked struct file per failing call). On the stock healthy mount (observed): RECLUSTER_OK=200 RECLUSTER_EINVAL=0 DELTA=0 — branch not enterable, success-path ref accounting balanced." }, "kernel_refs": [ "sys/vfs/hammer2/hammer2_ioctl.c:212", "sys/vfs/hammer2/hammer2_ioctl.c:214", "sys/vfs/hammer2/hammer2_ioctl.c:217-225", "sys/vfs/hammer2/hammer2_ioctl.c:226-231", "sys/vfs/hammer2/hammer2_iocom.c:77-85", "sys/kern/kern_dmsg.c:128-131" ], "artifacts": [ "README.md", "VERDICT.md", "df2666_trigger.c", "run_df2666.sh", "build.sh", "run.sh", "build.log", "run.log", "env.txt", "fix.diff", "manifest.json", "verdict.json" ] } |