DragonFlyBSD Kernel Audit
DF-0687 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/netbt/sco_socket.c b/sys/netbt/sco_socket.c
--- a/sys/netbt/sco_socket.c
+++ b/sys/netbt/sco_socket.c
@@ -114,10 +114,11 @@
 			m_freem(m);
 			m = NULL;
 			err = ENOPROTOOPT;
+			break;
 		}
 		/* *opt = m; */
-		/* XXX There are possible memory leaks (Griffin) */
 		soopt_from_kbuf(sopt, mtod(m, void *), m->m_len);
+		m_freem(m);
 		break;
 
 	case PRCO_SETOPT: