Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/netinet/raw_ip.c,v rcsdiff: /ftp/cvs/cvsroot/src/sys/netinet/raw_ip.c,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.55.2.6 retrieving revision 1.70.2.1 diff -u -p -r1.55.2.6 -r1.70.2.1 --- src/sys/netinet/raw_ip.c 2002/11/07 17:58:51 1.55.2.6 +++ src/sys/netinet/raw_ip.c 2003/07/02 15:27:00 1.70.2.1 @@ -1,4 +1,4 @@ -/* $NetBSD: raw_ip.c,v 1.55.2.6 2002/11/07 17:58:51 thorpej Exp $ */ +/* $NetBSD: raw_ip.c,v 1.70.2.1 2003/07/02 15:27:00 darrenr Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -65,7 +65,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: raw_ip.c,v 1.55.2.6 2002/11/07 17:58:51 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: raw_ip.c,v 1.70.2.1 2003/07/02 15:27:00 darrenr Exp $"); #include "opt_ipsec.h" #include "opt_mrouting.h" @@ -332,7 +332,9 @@ rip_output(m, va_alist) m_freem(m); return (EMSGSIZE); } - M_PREPEND(m, sizeof(struct ip), M_WAIT); + M_PREPEND(m, sizeof(struct ip), M_DONTWAIT); + if (!m) + return (ENOBUFS); ip = mtod(m, struct ip *); ip->ip_tos = 0; ip->ip_off = htons(0); @@ -442,7 +444,8 @@ rip_ctloutput(op, so, level, optname, m) case PRCO_GETOPT: switch (optname) { case IP_HDRINCL: - *m = m_get(M_WAIT, M_SOOPTS); + *m = m_get(M_WAIT, MT_SOOPTS); + MCLAIM((*m), so->so_mowner); (*m)->m_len = sizeof (int); *mtod(*m, int *) = inp->inp_flags & INP_HDRINCL ? 1 : 0; break; @@ -515,19 +518,21 @@ u_long rip_recvspace = RIPRCVQ; /*ARGSUSED*/ int -rip_usrreq(so, req, m, nam, control, p) +rip_usrreq(so, req, m, nam, control, l) struct socket *so; int req; struct mbuf *m, *nam, *control; - struct proc *p; + struct lwp *l; { struct inpcb *inp; + struct proc *p; int s; int error = 0; #ifdef MROUTING extern struct socket *ip_mrouter; #endif + p = l ? l->l_proc : NULL; if (req == PRU_CONTROL) return (in_control(so, (long)m, (caddr_t)nam, (struct ifnet *)control, p));