DF-4760 / manifest.json
{ "finding_id": "DF-4760", "verdict": "reproduced", "impact": "dos", "confidence": "certain", "reproduce": { "build": "cc -O -o /tmp/hold_daemon /tmp/hold_daemon.c", "run": "kldload vinum (fresh; run NO vinum command); /tmp/hold_daemon 300 & sleep 2; kldunload vinum (observe D-state wchan vstop); vmstat -m | grep devbuf before/after; after holder closes, kldunload completes", "expected": "vulnerable: kldunload wedges for the entire hold (serial: 'vinum: unloaded' exactly at holder-open+hold), devbuf grows ~50 leaked struct-daemonq/s (run-4: +14,600 nodes/~350 KB permanent), kldstat blocks system-wide. patched: EBUSY after bounded ~10 s with module intact (+~1 node), clean unload after close; legit-daemon unload rc=0 in <1 s." }, "kernel_refs": [ "sys/dev/raid/vinum/vinum.c:215-219", "sys/dev/raid/vinum/vinum.c:302-307", "sys/dev/raid/vinum/vinum.c:461-462", "sys/dev/raid/vinum/vinum.c:544-548", "sys/dev/raid/vinum/vinumdaemon.c:150-162", "sys/dev/raid/vinum/vinumdaemon.c:215-235" ], "artifacts": [ "hold_daemon.c", "run.sh", "run2.sh", "run3.sh", "run4.sh", "fix2_run.sh", "df4760_run.log", "df4760_run2.log", "df4760_run3.log", "df4760_run4.log", "holder4.log", "serial_5min_wedge.log", "v2_holder.log", "build.log", "fix_build2.log", "fix.diff", "fix_run.log", "env.txt", "README.md", "VERDICT.md", "verdict.json", "manifest.json" ] } |