⬢ DragonFlyBSD Kernel Audit
DF-5758 / fix.diff
← back to finding ↓ download raw
--- 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: