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;