diff options
Diffstat (limited to 'sys/netinet6/raw_ip6.c')
| -rw-r--r-- | sys/netinet6/raw_ip6.c | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/sys/netinet6/raw_ip6.c b/sys/netinet6/raw_ip6.c index 9b217f42aa1..c9da7afb9ba 100644 --- a/sys/netinet6/raw_ip6.c +++ b/sys/netinet6/raw_ip6.c @@ -1,4 +1,4 @@ -/* $OpenBSD: raw_ip6.c,v 1.103 2017/01/23 16:31:24 bluhm Exp $ */ +/* $OpenBSD: raw_ip6.c,v 1.104 2017/02/01 20:59:47 dhill Exp $ */ /* $KAME: raw_ip6.c,v 1.69 2001/03/04 15:55:44 itojun Exp $ */ /* @@ -474,7 +474,7 @@ rip6_output(struct mbuf *m, ...) */ int rip6_ctloutput(int op, struct socket *so, int level, int optname, - struct mbuf **mp) + struct mbuf *m) { struct inpcb *inp = sotoinpcb(so); int error = 0; @@ -487,11 +487,11 @@ rip6_ctloutput(int op, struct socket *so, int level, int optname, case IP_DIVERTFL: switch (op) { case PRCO_SETOPT: - if (*mp == NULL || (*mp)->m_len < sizeof(int)) { + if (m == NULL || m->m_len < sizeof(int)) { error = EINVAL; break; } - dir = *mtod(*mp, int *); + dir = *mtod(m, int *); if (inp->inp_divertfl > 0) error = ENOTSUP; else if ((dir & IPPROTO_DIVERT_RESP) || @@ -502,9 +502,8 @@ rip6_ctloutput(int op, struct socket *so, int level, int optname, break; case PRCO_GETOPT: - *mp = m_get(M_WAIT, M_SOOPTS); - (*mp)->m_len = sizeof(int); - *mtod(*mp, int *) = inp->inp_divertfl; + m->m_len = sizeof(int); + *mtod(m, int *) = inp->inp_divertfl; break; default: @@ -513,7 +512,7 @@ rip6_ctloutput(int op, struct socket *so, int level, int optname, } if (op == PRCO_SETOPT) - (void)m_free(*mp); + (void)m_free(m); return (error); #ifdef MROUTING @@ -524,18 +523,18 @@ rip6_ctloutput(int op, struct socket *so, int level, int optname, case MRT6_ADD_MFC: case MRT6_DEL_MFC: if (op == PRCO_SETOPT) { - error = ip6_mrouter_set(optname, so, *mp); - m_free(*mp); + error = ip6_mrouter_set(optname, so, m); + m_free(m); } else if (op == PRCO_GETOPT) - error = ip6_mrouter_get(optname, so, mp); + error = ip6_mrouter_get(optname, so, m); else error = EINVAL; return (error); #endif case IPV6_CHECKSUM: - return (ip6_raw_ctloutput(op, so, level, optname, mp)); + return (ip6_raw_ctloutput(op, so, level, optname, m)); default: - return (ip6_ctloutput(op, so, level, optname, mp)); + return (ip6_ctloutput(op, so, level, optname, m)); } case IPPROTO_ICMPV6: @@ -543,11 +542,11 @@ rip6_ctloutput(int op, struct socket *so, int level, int optname, * XXX: is it better to call icmp6_ctloutput() directly * from protosw? */ - return (icmp6_ctloutput(op, so, level, optname, mp)); + return (icmp6_ctloutput(op, so, level, optname, m)); default: if (op == PRCO_SETOPT) - m_free(*mp); + m_free(m); return EINVAL; } } |
