DF-3527 / run.log
=== env ===
DragonFly dfbsd 6.5-DEVELOPMENT DragonFly 6.5-DEVELOPMENT #0: Thu Jul 2 06:02:54 UTC 2026 root@dfbsd:/usr/obj/usr/src/sys/X86_64_GENERIC x86_64
4 1 0xffffffff82600000 18000 ng_socket.ko
6 1 0xffffffff82656000 2000 ng_iface.ko
ng0: flags=8088d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST,PROXY> metric 0 mtu 1500
inet6 fe80::8c70:4df9:fc70:9151%ng0 prefixlen 64 scopeid 0x3
=== M_NETGRAPH baseline ===
netgraph 2.01K 40.0M 0 390M 13.0K
BASE_NETGRAPH_InUse_MemUse=2.01K 40.0M
=== control run: 512 x GET_IFNAME (must be leak-free) ===
[*] node=ng0 iters=512 arglen=1024 cmd=1 msgsz=1076
[*] expected leak if cmd=2 and interface is UP: 551424 bytes
[*] results: EBUSY=0 success=512 other-err=0
[+] control run complete (handler frees msg normally on this path)
AFTER_CONTROL_InUse_MemUse=2.01K 40.0M (was 2.01K 40.0M)
=== leak run: 2048 x POINT2POINT arglen=16384 on UP ng0 ===
[*] node=ng0 iters=2048 arglen=16384 cmd=2 msgsz=16436
[*] expected leak if cmd=2 and interface is UP: 33662976 bytes
[*] results: EBUSY=2048 success=0 other-err=0
[+] LEAKED: 2048 ng_mesg allocations (33662976 bytes of M_NETGRAPH kernel heap) not freed
=== M_NETGRAPH after ===
netgraph 4.01K 80.0M 0 390M 21.1K
AFTER_LEAK_InUse_MemUse=4.01K 80.0M (control: 2.01K 40.0M)
EXPECTED_LEAK_BYTES=33662976
[+] netgraph allocator line above must show ~2K more InUse and ~34MB+ more MemUse than the control run