From c8b1bdc31cfd6f6f4f0062c15732db887fa54486 Mon Sep 17 00:00:00 2001 From: Sean Bruno Date: Sat, 14 Jul 2018 23:53:51 +0000 Subject: [PATCH] There was quite a bit of feedback on r336282 that has led to the submitter to want to revert it. --- sys/netinet/ip_output.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c index e644470dd44..90c5251204f 100644 --- a/sys/netinet/ip_output.c +++ b/sys/netinet/ip_output.c @@ -1256,18 +1256,12 @@ ip_ctloutput(struct socket *so, struct sockopt *sopt) switch (sopt->sopt_name) { case IP_OPTIONS: case IP_RETOPTS: - if (inp->inp_options) { - unsigned long len = ulmin(inp->inp_options->m_len, sopt->sopt_valsize); - struct mbuf *options = malloc(len, M_TEMP, M_WAITOK); - INP_RLOCK(inp); - bcopy(inp->inp_options, options, len); - INP_RUNLOCK(inp); + if (inp->inp_options) error = sooptcopyout(sopt, - mtod(options, + mtod(inp->inp_options, char *), - len); - free(options, M_TEMP); - } else + inp->inp_options->m_len); + else sopt->sopt_valsize = 0; break;