diff options
author | dg <dg@FreeBSD.org> | 1995-01-12 10:53:25 +0000 |
---|---|---|
committer | dg <dg@FreeBSD.org> | 1995-01-12 10:53:25 +0000 |
commit | 596e11c208ac0ac4b76e7375896e9f425afad809 (patch) | |
tree | 2eed6d8f565ab394f82126e1acec6c644b599255 /sys/netinet/raw_ip.c | |
parent | d8f618fa89ff0c6ae86007a23c7d5dbcb597db2d (diff) | |
download | FreeBSD-src-596e11c208ac0ac4b76e7375896e9f425afad809.zip FreeBSD-src-596e11c208ac0ac4b76e7375896e9f425afad809.tar.gz |
Fixed mbuf lossage when level != IPPROTO_IP. Problem reported by Robert
Dobbs, hint from Charles Hannum, fix by me.
Diffstat (limited to 'sys/netinet/raw_ip.c')
-rw-r--r-- | sys/netinet/raw_ip.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/netinet/raw_ip.c b/sys/netinet/raw_ip.c index 92d5b5a..c02cf40a 100644 --- a/sys/netinet/raw_ip.c +++ b/sys/netinet/raw_ip.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)raw_ip.c 8.2 (Berkeley) 1/4/94 - * $Id: raw_ip.c,v 1.9 1994/12/12 17:20:55 ugen Exp $ + * $Id: raw_ip.c,v 1.10 1994/12/13 15:57:34 ugen Exp $ */ #include <sys/param.h> @@ -188,8 +188,11 @@ rip_ctloutput(op, so, level, optname, m) register struct inpcb *inp = sotoinpcb(so); register int error; - if (level != IPPROTO_IP) + if (level != IPPROTO_IP) { + if (op == PRCO_SETOPT && *m) + (void)m_free(*m); return (EINVAL); + } switch (optname) { |