--- a/sys/netbt/l2cap_socket.c 2026-10-11 10:32:39.213598041 +0000 +++ b/sys/netbt/l2cap_socket.c 2026-10-11 10:33:52.264652723 +0000 @@ -124,11 +124,11 @@ } m->m_len = l2cap_getopt(pcb, sopt->sopt_name, mtod(m, void *)); if (m->m_len == 0) { - m_freem(m); - m = NULL; error = ENOPROTOOPT; + } else { + soopt_from_kbuf(sopt, mtod(m, void *), m->m_len); } - soopt_from_kbuf(sopt, mtod(m, void *), m->m_len); + m_freem(m); break; case PRCO_SETOPT: