β¬’ DragonFlyBSD Kernel Audit
← triage Β· dashboard
DF-5255

640KB kernel heap leak per interface down/up cycle: urtwn_stop never frees rx/tx lists while urtwn_init unconditionally re-allocates (plus detach-side leak of queued TX mbufs)

Summary

init kmallocs 64x8KB + 8x16KB every !RUNNING->init transition but stop never frees the lists (only detach does) - every ifconfig down/up orphans 655,360 bytes of M_USBDEV heap; failed-init retries leak identically. Secondary: free_list frees dp->buf and drops dp->ni but never m_freem(dp->m) - TX frames stranded in sc_tx_pending leak their mbufs at detach. Deterministic, no race. free-lists-in-stop + m_freem-in-free_list fix.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

findings/poc/DF-5255 Β· 1 files
FileTypeDescriptionSize
verdict.json file 990 B view raw

Fix verification

not_testable
baseline no→ patch + rebuild →patched clean
per-fix-DF-5255

Confirmed kernel references

Detail

Evidence (decisive lines)

static trace in finding markdown

Verified recommended fix

see finding markdown

Verdict

untested (hardware-gated; static trace, deterministic leak logic / narrow race window)