--- a/sys/netbt/rfcomm_socket.c 2026-10-11 10:32:39.213598041 +0000 +++ b/sys/netbt/rfcomm_socket.c 2026-10-11 10:34:23.084253944 +0000 @@ -119,11 +119,11 @@ m->m_len = rfcomm_getopt(pcb, sopt->sopt_name, mtod(m, void *)); crit_exit(); 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: