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

l2cap_connect() failure paths after l2cap_cid_alloc() leak the CID and leave the half-open channel on l2cap_active_list: socket bricked with EISCONN until close, CID space consumed

Summary

Both post-alloc failure exits (EHOSTUNREACH and the fail: label) reset state and drop the link reference but never release the CID or remove the channel from the active list: the socket returns EISCONN for every subsequent connect until closed, and the CID stays consumed (65471-CID space pressure across sockets). Needs an hci_unit to reach (no Bluetooth hardware in the rig - code-path certainty, honestly untested). CID-rollback fix (mirroring l2cap_detach).

Discussion (0)

No comments yet.

PoC verification

Evidence pack

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

Fix verification

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

Confirmed kernel references

Detail

Evidence (decisive lines)

static path trace

Verified recommended fix

release the CID on both post-alloc failure exits

Verdict

untested (needs an hci_unit - no Bluetooth hardware in the rig; code-path certainty from 166-201 + 212-213)