DF-5690 / manifest.json
{ "finding_id": "DF-5690", "title": "prop_array_util _nocopy helpers export borrowed-pointer lifetime hazards to _KERNEL: unpinned get_cstring_nocopy return, set_cstring_nocopy referencing caller-owned memory forever (frozen ps_size vs current NUL)", "verdict_summary": "reproduced", "impact": "none", "severity": "Info", "confidence": "certain", "reproduce": { "build": "sh /tmp/df5690/build.sh (3 same-source libprop rigs from /usr/src/sys/libprop: plain, page-guard, page-guard+fix.diff)", "run": "sh /tmp/df5690/run.sh (matrix | nolife baseline | nolife fixed)", "expected": "matrix: 811 checks, 0 failures, 6 known(DF-2240) rows; nolife baseline: T1 TRAP, T2 leaks reused buffer content via externalize, T2b TRAP, T3 TRAP, T4 control clean; nolife fixed: T2/T2b/T3 hazards gone (frozen copy), T1 still traps (documented contract)" }, "kernel_refs": [ "sys/libprop/prop_array_util.c:205-218", "sys/libprop/prop_array_util.c:220-235", "sys/libprop/prop_array.h:145-155", "sys/libprop/prop_string.c:85-87", "sys/libprop/prop_string.c:188-200", "sys/libprop/prop_string.c:101-105", "sys/libprop/prop_string.c:302-304", "sys/libprop/prop_array.c:650-657", "sys/libprop/prop_object.c:195-226", "sys/dev/disk/dm/dm_ioctl.c:273-316" ], "artifacts": [ "README.md", "VERDICT.md", "df5690.c", "guardalloc.h", "fix.diff", "build.sh", "run.sh", "build.log", "run.log", "run.2.log", "env.txt", "manifest.json", "verdict.json" ] } |