DragonFlyBSD Kernel Audit
DF-0407 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c
--- a/sys/netinet/ip_output.c
+++ b/sys/netinet/ip_output.c
@@ -1112,6 +1112,10 @@
 			m->m_len = sopt->sopt_valsize;
 			error = soopt_to_kbuf(sopt, mtod(m, void *), m->m_len,
 					      m->m_len);
+			if (error) {
+				m_freem(m);
+				goto done;
+			}
 			error = ip_pcbopts(sopt->sopt_name,
 					   &inp->inp_options, m);
 			goto done;