DF-0630 / fix_run.log
=== DF-0630 PoC run on PATCHED (single-fix) kernel 6.5-DEVELOPMENT #1 ===
Kernel: DragonFly 6.5-DEVELOPMENT #1: Thu Jul 2 19:52:53 UTC 2026
Fix applied: udp6_usrreq.c:435 `return;` -> `goto out;` (now replies via
the existing `out:`/`lwkt_replymsg` at :448-449).
Patch sha256(/boot/kernel/kernel) = 1dfc3c919e6589a78b6afc7d6031d00a3abfbb04aceb6a1b6065126a8eb1b2ed
Criterion: after the SAME trigger that deadlocked the unpatched kernel, the
network stack must NOT wedge -- follow-up ping6 ::1 returns normally and ssh
stays responsive, across multiple runs (incl. a 12-shot burst).
=== PATCHED baseline ping6 ::1 ===
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.077/0.077/0.077/0.000 ms
=== Single-shot runs (trigger ::1 1 then ping6 ::1 then ssh) ===
Run 1: ping6 ::1 -> time=0.122 ms, 0% loss ; ssh SSH_OK
Run 2: ping6 ::1 -> time=0.114 ms, 0% loss ; ssh SSH_OK
Run 3: ping6 ::1 -> time=0.078 ms, 0% loss ; ssh SSH_OK
=== 5-shot loop (earlier, ping6 flag was invalid -> usage printed, but key
signal: every ssh probe returned SSH_OK rc=0 within timeout; on unpatched
kernel one trigger already made ssh time out at rc=124) ===
all 5 runs: trigger TRIG_RC=0 ; ssh probe rc=0 (SSH_OK) ; vm status: up
=== 12-shot burst, then ping6 ::1 ===
sent #12: 48 bytes (ICMPv6 type1 + 40B inner IPv6 nh=UDP plen=0) -> ::1
ping6 ::1 -> icmp_seq=0 time=0.204 ms ; icmp_seq=1 time=1.455 ms ; 0% loss
vm.sh status: up
=== Conclusion ===
On the patched kernel the crafted ICMPv6 packet no longer deadlocks the netisr.
The same trigger that froze the entire guest on #0 (ssh rc=124, vm down) now
leaves every follow-up network op normal (ping6 ::1 < 2 ms, 0% loss, ssh OK)
across 5 single-shot runs and a 12-shot burst. Fix is deterministic and closes
the bug: udp6_ctlinput now always reaches `out:`/`lwkt_replymsg` before every
return, satisfying the netmsg reply contract.